이 글에서 YAML파일에 있는 데이터를 가져오는데 유용하게 사용되는 @Value
와 @ConfigurationProperties
에 대해서 다뤄보겠습니다.
@Value
프로퍼티의 키를 사용하여 특정한 값을 호출할 수 있습니다. 주로 단일 값을 가져올 때 사용합니다.
매핑방식
@Value("${propertyName.??.??}")
: 깊이가 존재하는 키값에 대해.
으로 구분하여 값을 매핑합니다.@Value("${propertyTest}")
: 단일 키값을 매핑합니다.@Value("${noKey : default value}")
: 키값이 존재하지 않으면 디폴트값이 매핑되도록 설정합니다.@Value("${propertyTestArray}")
: 여러 값을 나열할 때는 배열로 매핑합니다.@Value("#{'${propertyTestList}'.split(',')}")
: SpEL을 사용하여,
를 기준으로 List에 매핑합니다.
@ConfigurationProperties
- List, Map 자료구조로 프로퍼티값을 매핑하는 방식에 주로 사용됩니다.
1 | fruit: |
1 | import lombok.Getter; |
- 이런 식으로 매핑이 가능하지만
Map
이라는 기본 컬렉션을 사용하는 것보다 더 직관적이고, 명확하게 객체를 구성할 수 있게 아래와 같이 별도로POJO 타입
을 생성하고Map
대신 아래POJO타입
을 매핑하는 것이 더 좋습니다.
1 | import lombok.Getter; |