설정파일 불러오기 @Value @ConfigurationProperties
안녕하세요, 조영호입니다.
Spring에서는 공통 설정이나 숨겨야하는 내용들을 properties 또는 yml 파일에 적어놓고 그 값들을 호출해서 애플리케이션에서 사용합니다. 오늘은 이 설정값들을 불러오는 두 방법에 대해서 알아보겠습니다.
1. @Value 어노테이션
@Value("${api.url}")
private String url;
2. @ConfigurationProperties 어노테이션
@Component
@ConfigurationProperties(prefix = "api")
@Data
public class urlManager{
private String url;
}
3. @Value vs @ConfigurationProperties 비교
한 두가지의 간단한 설정을 가져올때는 @Value 방식을 씁니다.
하지만 가져와야할 내용이 많고 좀 더 객체 지향적으로 설정 값들을 관리하고 싶다면 @ConfigurationProperties를 씁니다.
4. @ConfigurationProperties 사용방법
- application.yml 파일은 아래와같이 작성하면 됩니다(prefix는 최상위 값을 따라갑니다)
url:
api: http://url.com
method: post - Dependency 설정이 필요합니다.
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-configuration-processor</artifactId>
<optional>true</optional>
</dependency> - 다양한 표기법을 바인딩 해줍니다.
api.test-program.url | .properties / .yml 권장 표기법 |
api.testProgram.url | 카멜 케이스 |
api.test_program.url | .properties / .yml 사용가능한 표기법 |
API_TEST_PROGRAM_URL | 시스템 환경 변수 |
- SpEL(Spring Expression Language) 은 사용할 수 없다.
@Value("#{1 + 1}")
int onePlusOne; //2 -> @Value에서만 사용 가능하다.
즐거운 코딩되세요.
감사합니다.
참고
- https://programmer93.tistory.com/47
- https://velog.io/@probsno/SpELSpring-Expression-Language%EC%97%90-%EB%8C%80%ED%95%B4%EC%84%9C-%EA%B0%84%EB%8B%A8%ED%95%98%EA%B2%8C-%EC%95%84%EB%9D%BC%EB%B3%B4%EC%9E%90
@ConfigurationProperties 사용법 - 삽질중인 개발자
- @configurationproperties 사용법 - ConfigurationProperties *.properties , *.yml 파일에 있는 property를 자바 클래스에 값을 가져와서(바인딩) 사용할 수 있게 해주는 어노테이션 Spring boot 에서는 운영에 필요한 설
programmer93.tistory.com