⚙️ 개발/Java

@ConfigurationProperties

지구용사 2024. 8. 5. 12:30

스프링의 스프링부트는 운영에 필요한 설정(DB, LOG 등)을 properties, yml 파일에 작성하고 관리한다. properties, yml에 있는 값들은 애플리케이션이 실행되면서 환경변수로 Environment에 등록된다. 그리고 해당 값들을 꺼내서 애플리케이션에서 활용하는 방법으로는 @Value와 @ConfigurationProperties가 있다.

 

@Value

단일 값을 주입하기 위해서 사용된다. 이때 프로퍼티 이름이 완벽하게 일하는 값을 가져온다.

//properties
site-url.naver="https://www.naver.com/"

//java
@Value("${site-url.naver}")
private String naver;

 

 

@ConfigurationProperties

properties, yml 파일에 있는 property를 자바 클래스에 값을 가져와서 사용(바인딩)할 수 있게 해주는 어노테이션이다. 

//properties
spring.web.naver-url="https://www.naver.com/"
@Getter
@Setter
@ConfigurationProperties(prefix="spring.web")
public class info {
	private final String naverUrl
}

 

값을 바인딩할 때 표기법이 있다.

server.admin-what-is-real-name properties, yml에 권장되는 표기법
server.adminWhatIsRealName 표준 카멜 케이스 문법
server.admin_what_is_real_name perperties, yml에서 사용가능한 표기법 ('-'이 표준이다)
SERVER_ADMIN_WHAT_IS_REAL_NAME 시스템 환경 변수를 사용할 때 권장되는 표기법