1
我已经为spring boot embedded server启用了gzip。我关心的是spring boot如何处理静态资源的gzip。由于这些不会改变,Spring引导(或底层嵌入式服务器)是否运行gzip算法,然后缓存结果?在每个静态资源请求上运行gzip算法似乎浪费了处理能力。春季引导GZIP静态资源只有一次?
我已经为spring boot embedded server启用了gzip。我关心的是spring boot如何处理静态资源的gzip。由于这些不会改变,Spring引导(或底层嵌入式服务器)是否运行gzip算法,然后缓存结果?在每个静态资源请求上运行gzip算法似乎浪费了处理能力。春季引导GZIP静态资源只有一次?
你将不得不使用弹簧ResourceResolver
专门缓存,CachingResourceResolver
。你的配置应该沿着这一线的东西:
@Configuration
@EnableWebMvc
@EnableCaching
public class MvcConfig extends WebMvcConfigurerAdapter {
@Autowired
private CacheManager cacheManager;
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
registry
.addResourceHandler("/resources/**")
.addResourceLocations("/resources/")
.setCachePeriod(3600) // Browser cache
.resourceChain(true)
.addResolver(new CachingResourceResolver(cacheManager, "resourceCache"))
.addResolver(new GzipResourceResolver())
.addResolver(new PathResourceResolver());
}
}
重要的是,CacheManager中必须配置的应用程序,以便获取更多信息检查出Spring Boot Caching docs(可能是最适合使用咖啡因本地缓存) 。