[Spring Boot] @ConfigurationProperties 사용법
2022. 3. 7. 22:55
반응형
@ConfigurationProperties
Spring Boot에서 *.properties나 *.yml 파일에 있는 property를 자바 클래스에 값을 바인딩하여 사용할 수 있게 해주는 어노테이션
Spring Boot에서는 운영에 필요한 정보를 프로퍼티 파일에서 Key-Value 형태로 저장하여 관리한다.
다음과 같은 properties 파일이 있다고 가정할 때 @Value를 사용하여 바인딩할 수 있다.
site-url.naver=https://www.naver.com
site-url.google=https://www.google.com
@Value("${site-url.naver}")
private String naver;
@Value("${site-url.google}")
private String google;
@ConfigurationProperties의 좋은점은
프로퍼티를 바인딩할 때 완화된 규칙을 적용하여 다음과 같은 변형도 모두 같게 취급한다.
mail.hostName // CamelCase
mail.hostname
mail.host-name // *.properties와 *.yml에 권장되는 표기 방법
mail.host_name
mail.HOST_NAME // 시스템 환경변수를 사용할 때 권장
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;
import lombok.Data;
@Component
@ConfigurationProperties(prefix = "site-url")
@Data
public class siteUrlProperties {
private String naver;
private String google;
}
@Component로 bean을 등록하고
@ConfigurationProperties에 prefix를 선정한다.
properties 파일에 site-url.*에 대해 바인딩한다.
Spring Boot 2.2
스프링 부트 2.2에서는 @ConfigurationProperties 클래스들을 모두 찾아서 등록해주므로 @Component, 혹은 @Comfiguration 과 같은 어노테이션이나 @EnableConfigurationProperties를 붙일 필요가 없다.
참고
https://www.baeldung.com/configuration-properties-in-spring-boot
https://sgc109.github.io/2020/07/07/spring-boot-configuration-properties/
728x90
반응형
'web > Spring' 카테고리의 다른 글
[Spring Boot] hibernate.hbm2ddl.auto 속성 정리 (0) | 2022.03.10 |
---|---|
[Spring JPA] Multiple Databases 다중 DB 연결하기 (0) | 2022.03.08 |
[Spring MVC] Thymeleaf 반복문 처리, 상태변수 접근 (index) (0) | 2022.03.01 |
[Spring] Apache POI 를 이용한 엑셀 파일 읽기 (0) | 2022.02.28 |
[Spring Mybatis] resultMap (0) | 2022.02.11 |
Written by ner.o
개발자 네로의 개발 일기,
자바를 좋아합니다 !
댓글 개