SpringBoot static폴더와 template폴더의 차이

2019-07-02

SpringBoot에서 static폴더와 template폴더의 차이

SpringBoot를 처음 접하셨다면, webapp 디렉토리가 존재하지 않고, static과 templates 폴더가 존재하는걸 볼 수 있습니다.

demo
  |+-src/main
  |    +-java
  |    +-resources
  |         static
  |         templates
  |         application.properties
  |-pom.xml

templates

스프링이 계속 버전이 올라가면서 view 엔진이 JSP 대신 thymeleaf로 바뀌었습니다.

templates폴더는 thymeleaf의 파일들을 두는 곳입니다.

static

static 폴더는 content들을 두는 곳입니다. 보통 css나 js를 두곤합니다./static 을 이용해서 웹에서 호출할 수도 있습니다.

Spring MVC에 있는 ResourceHttpRequestHandler 를 이용하기 때문에 자신만의 WebMvcConfigurer 를 만들어

addResourceHandlers 를 오버라이딩 해서 동작을 수정할수도 있습니다.

기본적으로 resources 폴더는 /** 로 맵핑되어 있지만, spring.mvc.static-path.pattern 속성을 이용하면 변경이 가능합니다.

spring.mvc.static-path-pattern=/resources/**

스프링레거시에서는 `src/main/webapp 폴더를 이용했습니다.

그러나 부트에서는 jar로 패키징이 되기때문에 스프링레거시처럼 webapp 폴더를 이용하고 싶다면

패키징 방법을 war로 변경해야합니다.

pom.xml에서 변경하면 됩니다.

<packaging>war</packaging>