이 글에서 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;  |