Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
Slide 1
Slide 1 text
Static Resources Management workshop Brian Clozel @brianclozel
Slide 2
Slide 2 text
Getting started $ open http://bit.ly/resourcehandling $ git clone http://github.com/bclozel/… $ git fetch -‐-‐all $ cd angularjs && mvn package
Slide 3
Slide 3 text
Brian Clozel @brianclozel http://spring.io/team/bclozel
Slide 4
Slide 4 text
First application 4 What could we achieve before Spring 4.1?
Slide 5
Slide 5 text
Resource Handling < 4.1 • Serve static resources from *any* Spring Resource location • Basic Cache header management • Easy to configure 5
Slide 6
Slide 6 text
WORKSHOP PART #1
Slide 7
Slide 7 text
Remaining questions • optimize (concatenate, minify) • transform (LESS, coffeescript, gzip) • front-‐end optimization (cache busting URLs, concatenate, minify) • development experience 7
Slide 8
Slide 8 text
AngularJS 8 First run with Resource Handling
Slide 9
Slide 9 text
Sources of inspiration • a complete asset pipeline built into Spring MVC • fingerprinting URLs for cache busting • client side dev in Sagan project 9
Slide 10
Slide 10 text
Why not an asset pipeline? • runtime vs. build time approach • languages and tools evolve *fast* • ES6, HTTP/2 10
Slide 11
Slide 11 text
Client source code layout • src/main/webapp just not adequate anymore • client *and* server: dependency management, modularity, tests, build artifacts • client-‐side development: ctrl+S, F5 11
Slide 12
Slide 12 text
WORKSHOP PART #2
Slide 13
Slide 13 text
ES6 app 13 client-‐side build and JS module loaders
Slide 14
Slide 14 text
Spring 4.1 resource handling • ResourceResolver • ResourceTransformer • ResourceUrlProvider 14
Slide 15
Slide 15 text
Built-‐in ResourceResolvers • PathResourceResolver • VersionResourceResolver • GzipResourceResolver • CachingResourceResolver 15
Slide 16
Slide 16 text
Built-‐in ResourceTransformers • CssLinkResourceTransformer • AppCacheManifestResourceTransformer • CachingResourceTransformer 16
Slide 17
Slide 17 text
VersionResourceResolver • VersionStrategies: • ContentVersionStrategy (md5 hashes) • FixedVersionStrategy (version string as a path prefix) 17
Slide 18
Slide 18 text
WORKSHOP PART #3
Slide 19
Slide 19 text
Q&A 19 …and what’s next?
Slide 20
Slide 20 text
What’s next? • https://github.com/bclozel/spring-‐resource-‐ handling • https://github.com/spring-‐io/sagan • https://jira.spring.io 20