2016-09-20 45 views
1

我已经为spring boot embedded server启用了gzip。我关心的是spring boot如何处理静态资源的gzip。由于这些不会改变,Spring引导(或底层嵌入式服务器)是否运行gzip算法,然后缓存结果?在每个静态资源请求上运行gzip算法似乎浪费了处理能力。春季引导GZIP静态资源只有一次?

回答

0

你将不得不使用弹簧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(可能是最适合使用咖啡因本地缓存) 。