728x90
스프링 프레임워크는 애플리케이션의 설정을 관리하고 구성하기 위해 다양한 방법을 제공합니다. 이 중에서도 @ConfigurationProperties와 @ConfigurationPropertiesScan은 애플리케이션의 설정을 효율적으로 관리하고 사용자 정의 설정을 쉽게 구성하기 위해 사용되는 중요한 기능입니다.
@ConfigurationProperties란?
@ConfigurationProperties는 스프링 프레임워크에서 제공하는 어노테이션으로, 애플리케이션의 설정 정보를 자바 클래스로 바인딩하는 데 사용됩니다. 이를 통해 설정 파일이나 환경 변수에서 가져온 설정 값을 객체로 매핑할 수 있습니다. 예를 들어, 데이터베이스 연결 정보, 외부 서비스 API 키, 애플리케이션의 고유한 속성 등을 자바 객체로 관리할 수 있습니다.
@ConfigurationProperties(prefix = "app")
public class MyAppProperties {
private String apiKey;
private String dbUrl;
// Getter and Setter methods
}
- @ConfigurationProperties를 사용하여 app 접두사가 붙은 설정 값을 MyAppProperties 클래스의 필드에 매핑하고 있습니다. 이제 application.properties 파일에 다음과 같이 설정 값을 정의할 수 있습니다.
app.apiKey=my-api-key
app.dbUrl=jdbc:mysql://localhost:3306/mydb
@ConfigurationPropertiesScan란?
@ConfigurationPropertiesScan은 스프링 부트 2.2부터 제공되는 어노테이션으로, 클래스패스에서 @ConfigurationProperties 어노테이션이 붙은 빈들을 찾아 등록하는 역할을 합니다. 이는 자동 설정과 연동되어 사용자 정의 설정 클래스를 자동으로 스캔하고 빈으로 등록하는 데 사용됩니다.
@SpringBootApplication
@ConfigurationPropertiesScan("com.example.myapp.config")
public class MyAppApplication {
public static void main(String[] args) {
SpringApplication.run(MyAppApplication.class, args);
}
}
- 위의 예시에서는 @ConfigurationPropertiesScan을 사용하여 com.example.myapp.config 패키지 내의 설정 클래스들을 스캔하고 빈으로 등록하게 됩니다.
- @ConfigurationProperties와 @ConfigurationPropertiesScan을 사용하면 설정 값을 자바 객체로 관리하므로, IDE의 자동완성 및 타입 안전성을 활용할 수 있습니다.
- 설정 값을 외부 파일이나 환경 변수에서 가져와 애플리케이션의 동작을 유연하게 변경할 수 있습니다.
- @ConfigurationPropertiesScan을 사용하면 설정 값을 스프링 빈으로 등록하기 위해 별도의 빈 등록 코드를 작성하지 않아도 됩니다.
참고
728x90
'💻dev > 🌱Java+Spring' 카테고리의 다른 글
Spring Security | 회원정보 수정 기능 구현 (0) | 2023.08.11 |
---|---|
Spring Security | PasswordEncoder를 사용하여 회원가입시 비밀번호 암호화 하기 (0) | 2023.08.11 |
Spring | RESTful API - DTO를 Page로 반환하기 (0) | 2023.08.11 |
Spring Security | Spring Security의 구조를 이해해보자! (0) | 2023.08.10 |
Spring | @Builder, @NoArgsConstructor 그리고 푸른 수염의 @AllArgsConstructor (0) | 2023.08.09 |