-
리소스 핸들러백기선(인프런 강의)/스프링 웹 MVC 2020. 9. 7. 12:01반응형
리소스 핸들러란?
이미지, 자바스크립트, CSS, HTML 파일과 같은 정적인 리소스를 처리하는 핸들러
디폴트(Default) 서블릿
- 서블릿 컨테이너가 기본으로 제공하는 서블릿으로 정적인 리소스를 처리할 때 사용 한다.
- tomcat.apache.org/tomcat-9.0-doc/default-servlet.html
스프링 MVC 리소스 핸들러 맵핑 등록
- 스프링은 정적인 리소스(디폴트 서블릿)들의 요청을 위임해서 처리한다.
- 가장 낮은 우선 순위로 등록
- 다른 핸들러 매핑이 "/" 이하 요청을 처리하도록 허용
- 최종적으로 리소스 핸들러가 처리하도록
- tomcat.apache.org/tomcat-9.0-doc/default-servlet.html
리소스 핸들러 설정
- 어떤 요청패턴을 지원할 것인가
- 어디서 리소스를 찾을 것인가
- 캐싱
- 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가 호출된다.
참고
반응형'백기선(인프런 강의) > 스프링 웹 MVC' 카테고리의 다른 글
HTTP 메시지 컨버터 : XML (0) 2020.09.19 HTTP 메시지 컨버터 (0) 2020.09.07 핸들러 인터셉터 (0) 2020.09.06 WebMvcConfigurer 설정 - 포메터 설정 (0) 2020.09.01 스프링 부트에서 JSP 사용하기 (0) 2020.08.31