⚙️ 개발/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 | 시스템 환경 변수를 사용할 때 권장되는 표기법 |