Spring MVC 리소스 핸들러
Spring Web MVC
백기선님의 강의인 Spring Web MVC 강의를 듣고 공부한 내용을 정리한 글
리소스 핸들러
리소스 핸들러란 이미지, 자바스크립트, CSS, HTML 파일과 같은 정적인 리소스를 처리하는 핸들러
톰캣같은 서블릿 컨테이너가 기본으로 제공하는 Default 서블릿이 존재한다.
이 Default 서블릿이란 정적인 리소스를 처리하는데 사용된다.
스프링은 등록된 Default 서블릿에다가 요청을 위임해서 정적인 리소스를 처리한다.
그런데 정적인 리소스 핸들러가 요청을 다 가로채면 우리가 만든 핸들러보다 정적인 리소스가 먼저 찾아지게 된다.
그래서 정적인 리소스를 처리하는 핸들러는 가장 낮은 우선순위로 등록된다.
다른 핸들러 맵핑이 /
이하 요청을 처리하도록 허용하고 최종적으로 리소스 핸들러가 처리하게 한다.
리소스 핸들러 설정은 다음과 같이 가능하다.
어떤 요청 패턴을 지원할 것인지?
어디서 리소스를 찾을 것인지?
캐싱
- ResourceResolver : 요청에 해당하는 리소스를 찾는 전략
- 캐싱, 인코딩(gzip), WebJar…
- ResourceTransformer : 응답으로 보낼 리소스를 수정하는 전략
- 캐싱, CSS 링크, HTML 5 AppCache …
스프링 부트에서는 기본적으로 정적 리소스 핸들러와 캐싱을 제공해준다. resources의 static 폴더를 만들어서 정적 파일을 넣어두면 서버가 구동될 때 index.html을 자동으로 내려준다.
Reference
인프런 백기선님의 스프링 Web MVC