YAML리스트는 [index]역 참조 자 (dereferencers)가있는 등록 정보 키로 표시됩니다 . 예를 들어, 다음 YAML을 고려하십시오.
앞의 예는 다음 속성으로 변환됩니다.
Spring Boot의 Binder유틸리티 를 사용하여 속성을 바인드하려면 (또는 ) 어떤 @ConfigurationProperties타입의 타겟 빈에서 프라퍼티를 가질 필요가있다. 그리고 setter를 제공하거나 변경 가능한 값으로 초기화해야한다. 예를 들어 다음 예제는 이전에 표시된 속성에 바인딩합니다.java.util.ListSet
24.7.2 Spring 환경에서 YAML을 속성으로 노출시키기
YamlPropertySourceLoader클래스는 같은 YAML을 노출하는 데 사용할 수있는 PropertySource봄에서 Environment. 이렇게하면 @Value자리 표시 자 구문을 사용하여 주석 을 사용하여 YAML 속성에 액세스 할 수 있습니다.
24.7.3 다중 프로필 YAML 문서
spring.profiles다음 예제와 같이 문서 적용시기를 나타내는 키를 사용하여 단일 파일에 여러 프로필 관련 YAML 문서를 지정할 수 있습니다 .
앞의 예에서 development프로필이 활성이면 server.address 속성은 127.0.0.1입니다. 마찬가지로 productionand 및eu-central profiles이 활성 인 경우 server.address속성은 192.168.1.120입니다. 는 IF development, production및 eu-central프로필이되어 있지 활성화, 속성에 대한 다음 값입니다 192.168.1.100.
spring.profiles따라서 간단한 프로필 이름 (예 production:) 또는 프로필 식을 포함 할 수 있습니다 . 프로파일 표현식은보다 복잡한 프로파일 로직이 표현되도록합니다 production & (eu-central | eu-west). 자세한 내용 은 참조 가이드 를 확인하십시오.
응용 프로그램 컨텍스트가 시작될 때 명시 적으로 활성화 된 것이 없으면 기본 프로파일이 활성화됩니다. 따라서 다음 YAML에서는 "기본"프로필 에서만spring.security.user.password 사용할 수 있는 값을 설정 합니다.
다음 예제에서 암호는 프로파일에 연결되지 않았기 때문에 항상 설정되며 필요에 따라 다른 모든 프로파일에서 명시 적으로 재설정해야합니다.
spring.profiles요소 를 사용하여 지정된 스프링 프로파일 은 !문자 를 사용하여 선택적으로 무효화 될 수 있습니다 . 단일 문서에 대해 음수 및 음화가 아닌 프로파일이 모두 지정되면 음수가 아닌 하나 이상의 프로파일이 일치해야하며 음수 프로파일이 일치하지 않아야합니다.
24.7.4 YAML 결점
YAML 파일은 @PropertySource주석 을 사용하여로드 할 수 없습니다 . 그런 식으로 값을로드해야하는 경우 속성 파일을 사용해야합니다.
프로필 관련 YAML 파일에서 다중 YAML 문서 구문을 사용하면 예기치 않은 동작이 발생할 수 있습니다. 예를 들어 프로파일이 활성화 된 application-dev.yml상태에서 호출 된 파일에서 다음 구성을 고려하십시오 dev.
위의 예에서 프로필 부정 및 프로필 식은 예상대로 작동하지 않습니다. 프로필 별 YAML 파일과 여러 YAML 문서를 결합하지 말고 하나만 사용하는 것이 좋습니다.
@ConfigurationProperties (접두사 = "my")
public class Config { 개인 목록 <String> 서버 = 새 ArrayList <String> (); 공용 목록 <String> getServers () {
이 .servers 반환 ;
}
}
서버 :
주소 : 192.168 . 1.100
---
spring :
프로파일 : 개발
서버 :
주소 : 127.0 . 0.1
---
봄 :
프로필 : 생산 및 eu-central
서버 :
주소 : 192.168 . 1.120
서버 :
포트 : 8000
---
스프링 :
프로파일 : 기본
보안 :
사용자 :
암호 : 약함
서버 :
포트 : 8000
스프링 :
보안 :
사용자 :
암호 : 약함
서버 :
포트 : 8000
---
스프링 :
프로파일 :! 테스트
보안 :
사용자 :
비밀번호 : 약함