Search

[Spring] @EnableConfigurationProperties

Tags
@EnableConfigurationProperties
Date
2023/09/06

개요

이번 포스팅에서는 @EnableConfigurationProperties@ConfigurationProperties 와 함께 알아보겠습니다.

1. @EnableConfigurationProperties란?

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