레알윙 2020. 9. 7. 12:01
반응형

리소스 핸들러란?

이미지, 자바스크립트, CSS, HTML 파일과 같은 정적인 리소스를 처리하는 핸들러

 

 

디폴트(Default) 서블릿

 

 

스프링 MVC 리소스 핸들러 맵핑 등록

  • 스프링은 정적인 리소스(디폴트 서블릿)들의 요청을 위임해서 처리한다.
  • 가장 낮은 우선 순위로 등록 

 

 

리소스 핸들러 설정

  • 어떤 요청패턴을 지원할 것인가
  • 어디서 리소스를 찾을 것인가
  • 캐싱
  • ResoureResolver : 요청에 해당하는 리소스를 찾는 전략
    • 캐싱, 인코딩(gzip, brotli), WebJar
  • ResoureTransformer : 응답으로 보낼 리소스를 수정하는 전략
    • 캐싱, CSS 링크, HTML5 AppCache

 

 

스프링 부트

  • 기본 정적 리소스 핸들러와 캐싱 제공

 

 

예제

2020/05/05 - [백기선(인프런 강의)/스프링 부트 개념과 활용] - 정적 리소스 지원

public class WebConfig implements WebMvcConfigurer{

	@Override
	public void addResourceHandlers(ResourceHandlerRegistry registry) {
		registry.addResourceHandler("/mobile/**")
			    .addResourceLocations("classpath:/mobile/")
			    // 밑의 path에 존재하는 것들을 return 할 때
			    // 밑에 있는 캐시 전략을 사용한다.
			    // 캐시가 응답 헤더에 추가가 된다. (리소스가 변경하지 않았다면)
			    .setCacheControl(CacheControl.maxAge(10, TimeUnit.MINUTES));
	}
}

같은 것을 호출하게 되면 304가 호출된다.

 

 

참고

반응형