From a5ec2d2181439440a10b200abd7c00f18e0af4d5 Mon Sep 17 00:00:00 2001 From: haerong22 Date: Wed, 10 Aug 2022 02:49:58 +0900 Subject: [PATCH] #16 board : thymeleaf - decoupled logic setting --- board/build.gradle | 1 + .../com/example/board/BoardApplication.java | 2 ++ .../example/board/config/ThymeleafConfig.java | 36 +++++++++++++++++++ board/src/main/resources/application.yaml | 2 ++ 4 files changed, 41 insertions(+) create mode 100644 board/src/main/java/com/example/board/config/ThymeleafConfig.java diff --git a/board/build.gradle b/board/build.gradle index 746a9ac8..d30b73ad 100644 --- a/board/build.gradle +++ b/board/build.gradle @@ -33,6 +33,7 @@ dependencies { compileOnly 'org.projectlombok:lombok' developmentOnly 'org.springframework.boot:spring-boot-devtools' annotationProcessor 'org.projectlombok:lombok' + annotationProcessor 'org.springframework.boot:spring-boot-configuration-processor' testImplementation 'org.springframework.boot:spring-boot-starter-test' // queryDSL 설정 diff --git a/board/src/main/java/com/example/board/BoardApplication.java b/board/src/main/java/com/example/board/BoardApplication.java index 4c8cf857..30d68084 100644 --- a/board/src/main/java/com/example/board/BoardApplication.java +++ b/board/src/main/java/com/example/board/BoardApplication.java @@ -2,7 +2,9 @@ package com.example.board; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.boot.context.properties.ConfigurationPropertiesScan; +@ConfigurationPropertiesScan @SpringBootApplication public class BoardApplication { diff --git a/board/src/main/java/com/example/board/config/ThymeleafConfig.java b/board/src/main/java/com/example/board/config/ThymeleafConfig.java new file mode 100644 index 00000000..fb67ef1d --- /dev/null +++ b/board/src/main/java/com/example/board/config/ThymeleafConfig.java @@ -0,0 +1,36 @@ +package com.example.board.config; + +import lombok.Getter; +import lombok.RequiredArgsConstructor; +import org.springframework.boot.context.properties.ConfigurationProperties; +import org.springframework.boot.context.properties.ConstructorBinding; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.thymeleaf.spring5.templateresolver.SpringResourceTemplateResolver; + +@Configuration +public class ThymeleafConfig { + + @Bean + public SpringResourceTemplateResolver thymeleafTemplateResolver( + SpringResourceTemplateResolver defaultTemplateResolver, + Thymeleaf3Properties thymeleaf3Properties + ) { + defaultTemplateResolver.setUseDecoupledLogic(thymeleaf3Properties.isDecoupledLogic()); + + return defaultTemplateResolver; + } + + + @RequiredArgsConstructor + @Getter + @ConstructorBinding + @ConfigurationProperties("spring.thymeleaf3") + public static class Thymeleaf3Properties { + /** + * Use Thymeleaf 3 Decoupled Logic + */ + private final boolean decoupledLogic; + } + +} diff --git a/board/src/main/resources/application.yaml b/board/src/main/resources/application.yaml index 0eeee4da..5eba8a62 100644 --- a/board/src/main/resources/application.yaml +++ b/board/src/main/resources/application.yaml @@ -28,6 +28,8 @@ spring: rest: base-path: /api detection-strategy: annotated + thymeleaf3: + decoupled-logic: true ---