@Test public void resourceChain() throws Exception { ResourceResolver mockResolver = Mockito.mock(ResourceResolver.class); ResourceTransformer mockTransformer = Mockito.mock(ResourceTransformer.class); this.registration.resourceChain(true).addResolver(mockResolver).addTransformer(mockTransformer); ResourceHttpRequestHandler handler = getHandler("/resources/**"); List<ResourceResolver> resolvers = handler.getResourceResolvers(); assertThat(resolvers.toString(), resolvers, Matchers.hasSize(4)); assertThat(resolvers.get(0), Matchers.instanceOf(CachingResourceResolver.class)); CachingResourceResolver cachingResolver = (CachingResourceResolver) resolvers.get(0); assertThat(cachingResolver.getCache(), Matchers.instanceOf(ConcurrentMapCache.class)); assertThat(resolvers.get(1), Matchers.equalTo(mockResolver)); assertThat(resolvers.get(2), Matchers.instanceOf(WebJarsResourceResolver.class)); assertThat(resolvers.get(3), Matchers.instanceOf(PathResourceResolver.class)); List<ResourceTransformer> transformers = handler.getResourceTransformers(); assertThat(transformers, Matchers.hasSize(2)); assertThat(transformers.get(0), Matchers.instanceOf(CachingResourceTransformer.class)); assertThat(transformers.get(1), Matchers.equalTo(mockTransformer)); }
@Test public void resourceChainWithVersionResolver() throws Exception { VersionResourceResolver versionResolver = new VersionResourceResolver() .addFixedVersionStrategy("fixed", "/**/*.js") .addContentVersionStrategy("/**"); this.registration.resourceChain(true).addResolver(versionResolver) .addTransformer(new AppCacheManifestTransformer()); ResourceHttpRequestHandler handler = getHandler("/resources/**"); List<ResourceResolver> resolvers = handler.getResourceResolvers(); assertThat(resolvers.toString(), resolvers, Matchers.hasSize(4)); assertThat(resolvers.get(0), Matchers.instanceOf(CachingResourceResolver.class)); assertThat(resolvers.get(1), Matchers.sameInstance(versionResolver)); assertThat(resolvers.get(2), Matchers.instanceOf(WebJarsResourceResolver.class)); assertThat(resolvers.get(3), Matchers.instanceOf(PathResourceResolver.class)); List<ResourceTransformer> transformers = handler.getResourceTransformers(); assertThat(transformers, Matchers.hasSize(3)); assertThat(transformers.get(0), Matchers.instanceOf(CachingResourceTransformer.class)); assertThat(transformers.get(1), Matchers.instanceOf(CssLinkResourceTransformer.class)); assertThat(transformers.get(2), Matchers.instanceOf(AppCacheManifestTransformer.class)); }
.addResolver(cachingResolver) .addResolver(versionResolver) .addResolver(webjarsResolver) .addResolver(pathResourceResolver) .addTransformer(cachingTransformer) .addTransformer(appCacheTransformer)
@Override public void addResourceHandlers(ResourceHandlerRegistry registry) { registry.addResourceHandler("/resources/**") .addResourceLocations("classpath:org/springframework/web/servlet/resource/test/") .resourceChain(true).addResolver(new VersionResourceResolver().addContentVersionStrategy("/**")); } }
private void addResourceHandlers(ResourceHandlerRegistry registry, String pattern, String locations, ResourceResolver customResourceResolver) { //@formatter:off ResourceChainRegistration chain = registry .addResourceHandler(pattern) .addResourceLocations(locations) .resourceChain(false); if (customResourceResolver != null) { chain.addResolver(customResourceResolver); } chain .addResolver(minifiedResourceResolver) .addResolver(gzipResourceResolver) .addTransformer(cwfResourceTransformer) .addTransformer(appCacheManifestTransformer); //@formatter:on }
private void addResourceHandlers(ResourceHandlerRegistry registry, String pattern, String locations, ResourceResolver... resolvers) { //@formatter:off ResourceChainRegistration chain = registry .addResourceHandler(pattern) .addResourceLocations(locations) .resourceChain(false); for (ResourceResolver resolver: resolvers) { chain.addResolver(resolver); } chain .addResolver(minifiedResourceResolver) .addResolver(gzipResourceResolver) .addTransformer(fujionResourceTransformer) .addTransformer(appCacheManifestTransformer); //@formatter:on }
@Override public void addResourceHandlers(ResourceHandlerRegistry registry) { registry.addResourceHandler(adminServerProperties.getContextPath() + "/**") .addResourceLocations("classpath:/META-INF/spring-boot-admin-server-ui/") .resourceChain(true) .addResolver(new PreferMinifiedFilteringResourceResolver(".min")); registry.addResourceHandler(adminServerProperties.getContextPath() + "/all-modules.css") .resourceChain(true) .addResolver(new ResourcePatternResolvingResourceResolver(resourcePatternResolver, "classpath*:/META-INF/spring-boot-admin-server-ui/*/module.css")) .addResolver(new ConcatenatingResourceResolver("\n".getBytes())); registry.addResourceHandler(adminServerProperties.getContextPath() + "/all-modules.js") .resourceChain(true) .addResolver(new ResourcePatternResolvingResourceResolver(resourcePatternResolver, "classpath*:/META-INF/spring-boot-admin-server-ui/*/module.js")) .addResolver(new PreferMinifiedFilteringResourceResolver(".min")) .addResolver(new ConcatenatingResourceResolver(";\n".getBytes())); }
.addResolver(new ResourceResolver() { @Override public Resource resolveResource(HttpServletRequest request, String requestPath, List<? extends Resource> locations,
@Override public void addResourceHandlers(ResourceHandlerRegistry registry) { registry.addResourceHandler("/**") .addResourceLocations("classpath:static/") .resourceChain(false) .addResolver(new VersionResourceResolver().addContentVersionStrategy("/**")); }