개발이야기/스프링(Spring)
스프링 부트에서 Thymeleaf3 설정하기 ( 부트스럽게?! )
코바
2016. 5. 19. 01:45
스프링 부트(글쓰는시점 1.4 m3)에서 아직 Thymeleaf 3의 지원이 안되고 있다.
그래서 사용하기 위해 설정을 해보았다.
사실 그냥 기본 스프링스럽게 만드는건 어렵지 않지만 부트스럽게 재구성해보았다.
그리고 기본 스프링부트에서 지원하는 Thymeleaf 2 버전과 기본 자체가 호환되도록 구성했다.
(딱히 기존 Thymeleaf 커스터마이징 없으면 바로 사용할 수 있도록 말이다.)
먼저 의존성 설정
Gradle Dependency
dependencies {
// ...
compile "org.thymeleaf:thymeleaf-spring4:3.0.0.RELEASE"
compile "org.thymeleaf:thymeleaf:3.0.0.RELEASE"
// ...
}
MAVEN Dependency
<dependency>
<groupId>org.thymeleaf</groupId>
<artifactId>thymeleaf</artifactId>
<version>3.0.0.RELEASE</version>
</dependency>
<dependency>
<groupId>org.thymeleaf</groupId>
<artifactId>thymeleaf-spring4</artifactId>
<version>3.0.0.RELEASE</version>
</dependency>
그리고 소스 ( 패키지는 알아서 ... )
그리고 Boot 설정
src/main/resources/META-INF/spring.factories
모듈 형태로 나누어질 때
org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
mypackage.Thymeleaf3AutoConfiguration
org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
mypackage.Thymeleaf3AutoConfiguration
Application.class
@SpringBootApplication(exclude = ThymeleafAutoConfiguration.class)
public class Application {
// ...
}
@SpringBootApplication(exclude = ThymeleafAutoConfiguration.class)
public class Application {
// ...
}
또는
@Import(Thymeleaf3AutoConfiguration.class) // 기본 패키지가 다르면
@SpringBootApplication(exclude = ThymeleafAutoConfiguration.class)
public class Application {
// ...
}
@Import(Thymeleaf3AutoConfiguration.class) // 기본 패키지가 다르면
@SpringBootApplication(exclude = ThymeleafAutoConfiguration.class)
public class Application {
// ...
}
기존 2버전 설정과 충돌 나기 때문에 기존 자동으로 되던 설정 부분을 제외 해줘야 한다.
이제 끝이다.
템플릿 자체는 기존 2버전과는 어느정도 호환이 되는 것 같다.
좀더 사용해봐야 알겠지만 ...
엔진을 기존 XHTML 형태에서 완전히 변경했다고 한다.
속도 자체를 개선했다고 하니 좀더 사용해봐야 겠다.