2016-09-20 4 views
1

스프링 부트 내장 서버 용으로 이미 gzip을 켰습니다. 내 관심사는 스프링 부트가 정적 리소스 gzip을 처리하는 방법입니다. 이것들은 변경되지 않기 때문에 스프링 부트 (또는 기본 내장 서버)가 gzip 알고리즘을 실행 한 다음 결과를 캐시합니까? 정적 리소스에 대한 모든 요청에서 gzip algo를 실행하는 것은 처리 능력의 낭비 인 것처럼 보입니다.스프링 부트 GZIP 정적 리소스는 한 번만 실행됩니까?

답변

0

캐싱과 관련하여 ResourceResolver 스프링을 사용해야합니다(). 귀하의 구성이의 라인을 따라 뭔가해야한다 :

@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()); 
    } 
} 

중요한 것은 응용 프로그램이 너무 (카페인을 사용하여 로컬 캐시 아마도 가장 좋은) 더 많은 정보를 위해 Spring Boot Caching docs을 확인하기위한 CacheManager를 구성해야한다는 것이다 .

관련 문제