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



© 2022. by minkuk

Powered by minkuk