이번 포스팅에서는 @EnableConfigurationProperties
를 @ConfigurationProperties
와 함께 알아보겠습니다.
Spring Boot에서 사용되는 어노테이션입니다. 해당 어노테이션을 사용하면 @ConfigurationProperties
로 빈을 등록하여 속성 값을 바인딩 할 수 있습니다.
쉽게 설명하면 프로젝트 생성 시 설정하게 되는 application.properties
혹은 application.yml
의 속성들을 자바 객체에 바인딩 할 수 있습니다.
application.properties
에 다음과 같은 속성 값들이 존재한다고 가정해봅시다.
app.name = MyApp
app.version = 1
이를 @ConfigurationProperties
를 통해 자바 객체로 바인딩 할 수 있습니다.
@ConfigurationProperties(prefix = "app")
public record AppProperties(String name, int version){
}
이제 Config 파일에서 위 객체를 빈으로서 등록해줍니다.
@Configuration
@EnableConfigurationProperties(AppProperties.class)
public class AppConfig {
// ...
}
이제 AppProperties 는 외부 설정 파일의 속성과 바인딩되므로, 애플리케이션 내에 주입하여 사용 가능합니다.
@Service
@RequiredArgsConstructor
public class AppService {
private final AppProperties appProperties;
public void printProperties(){
System.out.printn(appProperties.getName());
System.out.printn(appProperties.getVersion());
}
}