source

SpringBoot의 속성 파일, YAML 파일 및 명령줄 인수 중 우선 순위

ittop 2023. 3. 8. 21:47
반응형

SpringBoot의 속성 파일, YAML 파일 및 명령줄 인수 중 우선 순위

사용하고 있습니다.application.propertiesSpring 어플리케이션에 오래 전부터 파일을 저장했습니다.하지만 최근에 우연히 알게 된 건application.yaml파일. 이 세 가지 중 우선순위는 무엇이며 개인을 사용하는 장점(있는 경우)은 무엇입니까?

바보 같은 질문인 건 알지만 그들의 용법이 헷갈리네요.

여기에서는 스프링 부트 속성 해결 속성 순서를 설명합니다.

사용방법application.properties 그리고. application.yaml예상되지 않았습니다.둘 다 사용하지 말고 둘 중 하나를 사용하십시오.어느 쪽을 사용하든 속성 우선순위에 따라 위치 12 또는 13에서 처리됩니다(어플리케이션 JAR에 파일이 패키지되어 있는지 여부에 따라 다름).

링크 부패를 방지하기 위해 위의 링크에서 추출한 것을 여기에 포함...

Spring Boot에서는 값의 합리적인 오버라이드가 가능하도록 설계된 매우 특별한 PropertySource 순서를 사용합니다.속성은 다음 순서로 고려됩니다.

  1. 홈 디렉토리의 Devtools 글로벌 설정 속성(devtools가 활성 상태일 경우 ~/.spring-boot-devtools.properties)을 선택합니다.
  2. 테스트의 @TestPropertySource 주석.
  3. @Spring Boot테스트의 test #properties 주석 속성.
  4. 명령줄 인수
  5. SPRING_APPLICATION_JSON의 속성(환경 변수 또는 시스템 속성에 내장된 인라인 JSON)
  6. ServletConfig init 파라미터
  7. Servlet Context init 파라미터
  8. java:comp/env의 JNDI 속성.
  9. Java 시스템 속성(System.getProperties()).
  10. OS 환경 변수
  11. 랜덤 속성만 있는 Random Value Property Source.*.
  12. 패키지화된 jar 외부의 프로파일별 애플리케이션 속성(application-{profile.properties 및 YAML 변형)
  13. jar 내에 패키지된 프로파일별 애플리케이션 속성(application-{profile.properties 및 YAML 변형)
  14. 패키지화된 항아리 이외의 응용 프로그램 속성(application.properties 및 YAML 버전).
  15. 항아리 내에 패키지된 응용 프로그램 속성(application.properties 및 YAML 버전).
  16. @PropertySource는 @Configuration 클래스의 주석입니다.
  17. 기본 속성(Spring Application을 사용하여 지정).setDefaultProperties).

한마디로 말해서

yaml과 properties 파일이 둘 다 있고 둘 다 같은 키가 있으면 스프링 부트가 먼저 속성을 찾고 찾을 수 없으면 yaml로 이동합니다.

언급URL : https://stackoverflow.com/questions/45822326/precedence-order-among-properties-file-yaml-file-and-command-line-arguments-in

반응형