복붙노트

[SPRING] 스프링 부트에서 기본 활성 프로파일 설정하기

SPRING

스프링 부트에서 기본 활성 프로파일 설정하기

-Dspring.profiles.active가 설정되지 않은 경우 기본 활성 프로필을 프로덕션으로 설정합니다.

나는 내 application.properties에서 다음을 시도했지만 작동하지 않았다 :

spring.profiles.default=production

스프링 부트 버전 = 1.3.5.RELEASE

해결법

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

    1.여기에서하는 일은 프로덕션으로 기본 기본 프로파일 (@Profile 주석을 지정하지 않은 경우 모든 Bean에서 사용되는 프로파일)을 설정하는 것입니다.

    여기에서하는 일은 프로덕션으로 기본 기본 프로파일 (@Profile 주석을 지정하지 않은 경우 모든 Bean에서 사용되는 프로파일)을 설정하는 것입니다.

    실제로 수행해야 할 작업은 다음과 같이 기본 활성 프로파일을 설정하는 것입니다.

    spring.profiles.active=production
    
  2. ==============================

    2.나는 이렇게 해.

    나는 이렇게 해.

        System.setProperty("spring.profiles.default", "dev");
    

    메인 (...)의 맨 처음에

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

    3.--spring.profiles.active = production을 추가하십시오.

    --spring.profiles.active = production을 추가하십시오.

    예:

    java -jar file.jar --spring.profiles.active=production
    
  4. ==============================

    4.당신이 메이븐 (maven)을 사용한다면 다음과 같이 할 것이다 :

    당신이 메이븐 (maven)을 사용한다면 다음과 같이 할 것이다 :

    프로덕션을 기본 프로필로 설정 :

    <properties>
        <activeProfile>production</activeProfile>
    </properties>
    

    다른 프로필의 예 :

    <profiles>
        <!--Your default profile... selected if none specified-->
        <profile>
            <id>production</id>
            <activation>
                <activeByDefault>true</activeByDefault>
            </activation>
            <properties>
                <activeProfile>production</activeProfile>
            </properties>
        </profile>
    
        <!--Profile 2-->
        <profile>
            <id>development</id>
            <properties>
                <activeProfile>development</activeProfile>
            </properties>
        </profile>
    
        <!--Profile 3-->
        <profile>
            <id>otherprofile</id>
            <properties>
                <activeProfile>otherprofile</activeProfile>
            </properties>
        </profile>
    <profiles>
    

    application.properties에서 다음을 설정해야합니다.

    spring.profiles.active=@activeProfile@
    

    이 문제는 매번 저에게 효과적이며 문제가 해결되기를 바랍니다.

  5. ==============================

    5.이것을 App.java에 넣으십시오.

    이것을 App.java에 넣으십시오.

    public static void main(String[] args) throws UnknownHostException {
        SpringApplication app = new SpringApplication(App.class);
        SimpleCommandLinePropertySource source = new SimpleCommandLinePropertySource(args);
        if (!source.containsProperty("spring.profiles.active") &&
                !System.getenv().containsKey("SPRING_PROFILES_ACTIVE")) {
    
            app.setAdditionalProfiles("production");
        }
        ...
    }
    

    이것이 JHipster에서 이루어지는 방법입니다.

  6. ==============================

    6.먼저, 아래의 해결책을 사용하여 스프링 부트가 항상 application.properties 파일을 읽는다는 것을 이해해야합니다. 따라서 다른 프로필 파일은 이전에 정의한 속성 만 보완하고 대체합니다.

    먼저, 아래의 해결책을 사용하여 스프링 부트가 항상 application.properties 파일을 읽는다는 것을 이해해야합니다. 따라서 다른 프로필 파일은 이전에 정의한 속성 만 보완하고 대체합니다.

    다음 파일 검토 :

    application.properties
    application-qa.properties
    application-prod.properties
    

    1) 매우 중요합니다. application.properties와이 파일 만 다음 행을 가져야합니다.

    spring.profiles.active=@spring.profiles.active@
    

    2) QA 및 PROD 구성 파일에서 원하는 것을 변경하여 환경의 차이점을 확인하십시오.

    3) 명령 행에서 다음 옵션 중 하나를 사용하여 스프링 부트 응용 프로그램을 시작하십시오.

    기본 application.properties 파일로 앱을 시작합니다.

    mvn spring-boot:run
    

    기본 application.properties 파일을로드하고 application-qa.properties 파일 다음에 기본 구성을 대체 및 / 또는 보완합니다.

    mvn spring-boot:run -Dspring.profiles.active=qa
    

    QA 대신 프로덕션 환경과 동일하지만 다음과 같습니다.

    mvn spring-boot:run -Dspring.profiles.active=prod
    
  7. ==============================

    7.현재 Maven + Spring Boot를 사용 중입니다. 우리의 솔루션은 다음과 같습니다.

    현재 Maven + Spring Boot를 사용 중입니다. 우리의 솔루션은 다음과 같습니다.

    application.properties

    #spring.profiles.active= # comment_out or remove
    

    securityConfig.java

    @Value(${spring.profiles.active:[default_profile_name]}")
    private String ACTIVE_PROFILE_NAME;
    

    신용은 MartinMlima에서 시작됩니다. 비슷한 대답이 여기에 제공됩니다 :

    Spring에서 프로그래밍 방식으로 현재 활성 / 기본 환경 프로파일을 얻는 방법은 무엇입니까?

  8. ==============================

    8.AWS LAMBDA에서 :

    AWS LAMBDA에서 :

    $ sam local의 경우 sam 템플릿 yml 파일에 다음 줄을 추가합니다.

    Resources:
       FunctionName:
           Properties:
               Environment:
                   Variables:
                      SPRING_PROFILES_ACTIVE: local
    

    그러나 AWS Console에서 : 람다 환경 변수에 다음을 추가하면됩니다.

    KEY : JAVA_TOOL_OPTIONS 값 : -Dspring.profiles.active = dev

  9. from https://stackoverflow.com/questions/37700352/setting-the-default-active-profile-in-spring-boot by cc-by-sa and MIT license