복붙노트

[SPRING] Spring 부트 애플리케이션의 환경 특정 application.properties 파일

SPRING

Spring 부트 애플리케이션의 환경 특정 application.properties 파일

내 봄 부팅 응용 프로그램에서 환경 특정 속성 파일을 만들고 싶습니다. 전쟁에서 내 응용 프로그램의 포장 유형과 나는 임베디드 바람둥이에서 그것을 실행하고 있습니다. 나는 sts를 사용하고 sts 자체에서 main을 실행한다.

위의 경우 env-value는 local / devl / test / prod로 값을 갖습니다.

해결법

  1. ==============================

    1.스프링 부트는 이미 프로필 기반 속성을 지원합니다.

    스프링 부트는 이미 프로필 기반 속성을 지원합니다.

    간단히 application- [profile] .properties 파일을 추가하고 spring.profiles.active 속성을 사용하여 사용할 프로파일을 지정하십시오.

    -Dspring.profiles.active=local
    

    그러면 application.properties 및 application-local.properties가 첫 번째 속성의 후행 우선 순위 속성과 함께로드됩니다.

  2. ==============================

    2.그래 넌 할수있어. Spring을 사용하고 있다는 느낌은 @PropertySource 주석을 확인하십시오.

    그래 넌 할수있어. Spring을 사용하고 있다는 느낌은 @PropertySource 주석을 확인하십시오.

    설정에 주석 달기

    @PropertySource("application-${spring.profiles.active}.properties")
    

    당신이 원하면 무엇이든 그것을 호출 할 수 있고, inn을 원한다면 여관을 추가 할 수 있습니다. @PropertySource {..., ..., ...}로 작성 될 수있는 모든 환경에 속하는 더 많은 세트 및 / 또는 기본값이있는 경우 좋을 수 있습니다.

    @PropertySources(
      @PropertySource("application-${spring.profiles.active}.properties"),
      @PropertySource("my-special-${spring.profiles.active}.properties"),
      @PropertySource("overridden.properties"))
    

    그런 다음 환경으로 애플리케이션을 시작할 수 있습니다.

    -Dspring.active.profiles=test
    

    이 예에서 name은 application-test-properties로 바뀌며 계속 이어집니다.

  3. ==============================

    3.우리는 이렇게 할 수 있습니다 :

    우리는 이렇게 할 수 있습니다 :

    application.yml에서 :

    spring:
      profiles:
        active: test //modify here to switch between environments
        include:  application-${spring.profiles.active}.yml
    

    application-test.yml에서 :

    server:
      port: 5000
    

    그리고 application-local.yml에서 :

    server:
      address: 0.0.0.0
      port: 8080
    

    그러면 우리가 원하는대로 봄 부팅이 우리의 앱을 시작할 것입니다.

  4. from https://stackoverflow.com/questions/32196451/environment-specific-application-properties-file-in-spring-boot-application by cc-by-sa and MIT license