728x90
@ConfigurationProperties
@ConfigurationProperties를 사용하여 application.yml등과 같은 설정정보에 작성한 설정 값을 가져올 수 있습니다.
간단한 예시를 통해 확인해보겠습니다.
application.yml
myproperty:
name: shin
설정 값을 보관할 클래스
@ConstructorBinding
@ConfigurationProperties("myproperty")
data class ApplicationProperties(
val name: String,
) {
}
@ConstructorBinding을 사용하면 생성자 방식으로 값을 세팅할 수 있어, 불변 객체를 만드는 데 용이합니다.
만약 이를 사용하지 않으면 setter를 통해 값을 바인딩 시켜주어야 하는데, 이렇게 되면 객체의 불변성을 보장할 수 없습니다.
@ConfigurationProperties을 사용하기 위해서는 @ConfigurationPropertiesScan 혹은 @EnableConfigurationProperties를 사용하여야 합니다.
@EnableConfigurationProperties 사용
@EnableConfigurationProperties(ApplicationProperties::class)
@SpringBootApplication
class DemoApplication
fun main(args: Array<String>) {
runApplication<DemoApplication>(*args)
}
위와 같이 속성 값을 바인딩 시킬 클래스를 지정해 주어야 합니다.
@ConfigurationPropertiesScan 사용
@ConfigurationPropertiesScan
@SpringBootApplication
class DemoApplication
fun main(args: Array<String>) {
runApplication<DemoApplication>(*args)
}
ComponentScan이 동작하는 것 처럼 동작하여, @ConfigurationProperties가 붙은 클래스를 스캔합니다.
Reference
https://mangkyu.tistory.com/189
728x90
'🏝️ Spring > 기본' 카테고리의 다른 글
Repository와 DAO의 차이점은 무엇일까 (16) | 2023.04.24 |
---|---|
[Spring] @TransactionalEventListener 호출 시 발생하는 문제 (2) | 2023.01.05 |
[Spring] 등록된 스프링 빈을 조회하는 방법 (0) | 2022.07.19 |
[Spring] 싱글톤 패턴의 주의점 (0) | 2021.12.28 |
[Spring] @PostConstructor를 사용한 데이터 입력 (0) | 2021.12.19 |