복붙노트

[SPRING] Spring에서 application.properties를 사용하여 프로파일을 설정하는 방법은 무엇입니까?

SPRING

Spring에서 application.properties를 사용하여 프로파일을 설정하는 방법은 무엇입니까?

application.properties 파일을 사용하여 다음 항목으로 프로파일을 설정하고 싶습니다.

mode=master

내 context.xml 파일에서 spring.profiles.active를 설정하는 방법은 무엇입니까? init-param은 web.xml 컨텍스트에서만 작동합니다.

<init-param> 
    <param-name>spring.profiles.active</param-name>
    <param-value>"${mode}"</param-value>
</init-param>

해결법

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

    1.활성 프로파일을 변경하는 데는 몇 가지 방법이 있으며 그 중 하나도 특성 파일에서 직접 가져 가지 않습니다.

    활성 프로파일을 변경하는 데는 몇 가지 방법이 있으며 그 중 하나도 특성 파일에서 직접 가져 가지 않습니다.

    ApplicationListener를 사용하여 컨텍스트 초기화를 수신 할 수 있습니다. 여기에서하는 방법에 대한 설명. ContextStartedEvent를 사용할 수 있습니다.

    ContextStartedEvent event = ...; // from method argument
    ConfigurableEnvironment env = (ConfigurableEnvironment) event.getApplicationContext().getEnvironment();
    env.setActiveProfiles("master");
    

    속성 파일에서 "master"값을 얻을 수 있습니다.

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

    2.환경 변수, 시스템 변수 (JVM이나 응용 프로그램에서는 -D 옵션)를 사용하거나 JNDI (java : comp / env /)에서 사용할 수 있습니다. 그러나 속성 파일에 넣을 수는 없습니다. 특정 등록 정보 파일이 읽 t집니다.

    환경 변수, 시스템 변수 (JVM이나 응용 프로그램에서는 -D 옵션)를 사용하거나 JNDI (java : comp / env /)에서 사용할 수 있습니다. 그러나 속성 파일에 넣을 수는 없습니다. 특정 등록 정보 파일이 읽 t집니다.

    @Profile javadocs에는 더 많은 정보가있다.

    다른 해결책은 특정 파일을 읽고 주어진 프로필을 활성화하는 고유 한 ApplicationContextInitializer 구현을 만드는 것입니다.

  3. from https://stackoverflow.com/questions/18614849/how-to-set-the-profile-using-application-properties-in-spring by cc-by-sa and MIT license