네로개발일기

개발자 네로의 개발 일기, 자바를 좋아합니다 !

반응형

@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/

 

Spring Boot 의 @ConfigurationProperties

@ConfigurationProperties 는 Spring Boot 에서 properties 파일에 정의된 프로퍼티 중 주어진 prefix 를 가지는 프로퍼티들을 POJO 에 매핑하여 Bean 으로 만들수 있게 해주는 어노테이션이다. 그럼 @ConfigurationPrope

sgc109.github.io

 

728x90
반응형
blog image

Written by ner.o

개발자 네로의 개발 일기, 자바를 좋아합니다 !