programing

특정 환경을 위한 springyml 파일

lovejava 2023. 7. 13. 20:14

특정 환경을 위한 springyml 파일

저는 3개가 있습니다.yml파일 즉,

  • application-default.yml-> 기본 속성, 모든 프로필에서 사용할 수 있어야 합니다.
  • application-dev.yml-> 개발 프로파일의 속성만 해당
  • application-prod.yml-> prod 프로필에 대한 속성만

다음을 통과하여 부팅 응용 프로그램을 시작할 때-Dspring.profiles.active=dev,에 액세스할 수 있습니다.application-dev.yml특정 속성그러나 다음에서 정의된 속성을 가져올 수 없습니다.application-default.yml파일들. 다음은 나의application-dev.yml파일:

Spring:
 profiles:
  include: default

spring.profiles: dev

prop:
 key:value

TL;DR

application-default.yml 파일의 이름을 application.yml로 바꾸기만 하면 원하는 대로 작동합니다.

설명.

문서의 설명에 따르면 application-{suffix}yml이라는 파일은 접미사와 일치하는 이름의 프로파일로 애플리케이션을 실행할 때 활성화됩니다.또한 main application.yml은 기본적으로 로드되므로 모든 프로필에 대한 공통 속성을 저장하기에 완벽한 위치입니다.또는 파일 이름을 application-default.yml로 유지하려면 Spring Boot 응용 프로그램에 다음과 같은 두 가지 프로파일을 전달할 수 있습니다.

-Dspring.profiles.active=default,dev

이렇게 하면 두 개의 프로필을 활성화하고 두 개의 속성 파일이 모두 로드됩니다.

저는 제 문제를 해결할 수 있었습니다. 여기 제가 한 일이 있습니다.

application-common.yml 파일을 만들고 공통 속성을 여기에 넣습니다.그런 다음 application-{env}.yml 파일에서 이 파일을 맨 위에 올립니다.

spring:
 profiles:
  include: default

기본 프로필을 구체적으로 로드할 필요가 없기 때문에, 이것은 나에게 효과가 있습니다!!!

제가 하는 일은:

공통 설정 위치application.xml이 파일에 다음을 추가합니다.

spring:
  profiles:
    active: dev, pro, xxx...

활성화할 모든 프로필.

따라서 이 파일을 편집하여 환경을 전환할 수 있습니다.

다른 파일을 남길 수 있도록 외부 파일이 절차를 수행합니다.application.xml활성화하기 위해 전쟁 밖에서.dev/pro이 파일을 매번 편집하는 대신 환경을 개선할 수 있습니다.설명서를 확인하십시오.

https://docs.spring.io/spring-boot/docs/current/reference/html/boot-features-external-config.html

언급URL : https://stackoverflow.com/questions/37033129/spring-yml-file-for-specific-environment