반응형

프로젝트 생성은 start.spring.io에 들어가서 만들던, sts에서 starter project로 만들던 똑같다.

freemarker랑 web만 체크를 하고 만들면됨.


내부적으로 뭔가만 해줄뿐, 다른 Spring Boot 프로젝트와 디렉토리 형식은 별반 다를게 없다.


내부적으로 해주는 뭔가에 대해 spring 공식 사이트에서 알아보니..


src/main/resources폴더에 있는 static 폴더를 internelResource로 알아서 세팅을 해주며,

templates 안에 있는 파일은 freemarkerViewResolver로 알아서 설정을 해준다고 한다.


그래서, 기존에 복잡하게 설정파일을 이리저리 고칠일이 없어졌다.


만약 ftl파일이 들어갈 경로를 templates 경로 말고 다른 경로를 사용하고 싶다면.. (웬만하면 그럴일은 없겠지만)

application.properties 파일을 열어서 필요한 옵션을 추가하여 override시켜주면 된다. (아래 링크 참고)

http://docs.spring.io/spring-boot/docs/current-SNAPSHOT/reference/htmlsingle/#howto-customize-view-resolvers



sts가 이제 3.7버전이 되면서 application.properties파일에서도 code assistance를 해준다;;

spring boot도 그렇고 IDE도 그렇고, 점점 개발자가 뭔가를 설정할 일이 없어지는듯?


하나 주의할 점은, 추가로 WebMvc관련된 interface나 class(WebMvcConfigurerAdapter 등...)를 상속받아서

새롭게 설정파일을 만들 경우 spring boot가 자동으로 해줬던 것들이 제대로 동작을 하지 않는 것 같다.


Object를 Json으로 매핑하기 위해서 WebMvcConfigurer를 상속받아서 MappingJackSon2MessageConverter를 추가했더니

viewResolver건, static 폴더 접근이건 둘다 안됬었다.


하지만, 기본으로 MappingJackson2MessageConverter를 지원해주는 것 같아서, 설정파일에서 지워버리니 해결이 됨..


자동으로 해주는게 너무나 많아서, 뭔가를 추가할때 복잡하긴한데, 어느정도 타협을 해야될것 같음.

반응형
,