ThymeleafConfig.class
package com.fastcampus.projectboard.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;
}
}
위의 코드는 강사님이 따로 만든 코드로 이를 yaml에 추가를 하면 인식이 안될 때가 있다. 이를 해결하기 위해서
annotationProcessor 'org.springframework.boot:spring-boot-configuration-processor'
이 코드를 build.gradle에 추가를 하면
사용자가 직접 만든 property 들도 문서세팅이 가능해지고 idea 지원을 받을 수 있다.
위 사진은 application.yaml에 추가한 장면이며
원래는 Thymeleaf3:의 경우 강사님이 만든 것으로
인식을 못하여 문서세팅이 불가능하지만
앞선 build.gradle에 추가를 하였기에
위 처럼 idea에서 알아서 잡아준다.