복붙노트

[SPRING] 스프링 부트 프로파일을 사용하는 방법

SPRING

스프링 부트 프로파일을 사용하는 방법

내가 가진 application.yml, 응용 프로그램 - dev.ymlandapplication - dev.yml

그래서 두 가지 문제를 해결하는 방법? 고마워 ~

해결법

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

    1.나는이 질문을 완전히 이해할 수 있는지 확신 할 수 없지만 Spring Boot에서 프로파일에 대한 몇 가지 세부 사항을 제공함으로써 대답을 시도 할 것입니다.

    나는이 질문을 완전히 이해할 수 있는지 확신 할 수 없지만 Spring Boot에서 프로파일에 대한 몇 가지 세부 사항을 제공함으로써 대답을 시도 할 것입니다.

    귀하의 # 1 예를 들면, 문서에 따라 -Drun.profiles를 사용하여 Spring Boot Maven 플러그인을 사용하여 프로파일을 선택할 수 있습니다.

    편집 : 스프링 부트 2.0+의 실행 이름이 spring-boot.run으로 변경되었습니다.

    mvn spring-boot:run -Drun.profiles=dev
    

    http://docs.spring.io/spring-boot/docs/current/maven-plugin/examples/run-profiles.html

    # 2 예에서 jar의 이름 다음에 활성 프로파일을 정의합니다. 실행중인 jar의 이름 앞에 JVM 인수를 제공해야합니다.

    java -jar -Dspring.profiles.active=dev XXX.jar
    

    일반 정보 :

    당신은 당신이 application.yml과 application-dev.yml을 가지고 있다고 언급한다. dev 프로필로 실행하면 실제로 두 config 파일이로드됩니다. application-dev.yml의 값은 application.yml에서 제공하는 값과 동일하지만 yml 파일의 값이 모두로드됩니다.

    활성 프로파일을 정의하는 여러 가지 방법이 있습니다.

    항아리를 실행할 때 -Dspring.profiles.active를 사용하여 이전과 같이 정의 할 수 있습니다. 또한 SPRING_PROFILES_ACTIVE 환경 변수 또는 spring.profiles.active 시스템 특성을 사용하여 프로파일을 설정할 수 있습니다.

    더 많은 정보는 여기에서 찾을 수 있습니다 : http://docs.spring.io/spring-boot/docs/current/reference/html/howto-properties-and-configuration.html#howto-set-active-spring-profiles

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

    2.이를 위해 .yml 파일 세 개가 필요하지 않습니다. 하나의 application.yml 파일을 가질 수 있으며 각 프로파일 섹션이 3 개의 하이픈 (---)으로 구분 된 동일한 프로파일 특정 등록 정보를 작성할 수 있습니다.

    이를 위해 .yml 파일 세 개가 필요하지 않습니다. 하나의 application.yml 파일을 가질 수 있으며 각 프로파일 섹션이 3 개의 하이픈 (---)으로 구분 된 동일한 프로파일 특정 등록 정보를 작성할 수 있습니다.

    다음으로 현재 활성 프로파일을 선택하기 위해 application.yml 파일에서 다음과 같이 지정할 수 있습니다.

    spring:
      profiles:
        active:
        - local
    

    그러나 환경 변수를 설정하면이 구성이 무시됩니다 (예 : SPRING_PROFILES_ACTIVE = dev

    다음은 사용자를위한 샘플 파일입니다.

    # include common properties for every profile in this section
    
    server.port: 5000 
    
    spring:
      profiles:
        active:
        - local
    
    ---
    # profile specific properties
    
    spring:
      profiles: local
    
      datasource:
        url: jdbc:mysql://localhost:3306/
        username: root
        password: root
    
    ---
    # profile specific properties
    
    spring:
      profiles: dev
    
      datasource:
        url: jdbc:mysql://<dev db url>
        username: <username>
        password: <password>
    
  3. ==============================

    3.Spring Boot Maven Plugin을 사용하고 있다면 다음을 실행하십시오 :

    Spring Boot Maven Plugin을 사용하고 있다면 다음을 실행하십시오 :

    mvn spring-boot:run -Dspring-boot.run.profiles=foo,bar
    

    (https://docs.spring.io/spring-boot/docs/current/maven-plugin/examples/run-profiles.html)

  4. ==============================

    4.여기와 같은 하나의 application.properties (yml)에서 프로필에 따라 속성을 지정할 수 있습니다. 그때 mvn clean spring-boot : run -Dspring.profiles.active = dev는 올바른 실행을해야합니다. 그것은 나를 위해 일한다.

    여기와 같은 하나의 application.properties (yml)에서 프로필에 따라 속성을 지정할 수 있습니다. 그때 mvn clean spring-boot : run -Dspring.profiles.active = dev는 올바른 실행을해야합니다. 그것은 나를 위해 일한다.

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

    5.

    @Configuration
    @Profile("dev")
    public class StandaloneDataConfig {
    
        @Bean
        public DataSource dataSource() {
            return new EmbeddedDatabaseBuilder()
                .setType(EmbeddedDatabaseType.HSQL)
                .addScript("classpath:com/bank/config/sql/schema.sql")
                .addScript("classpath:com/bank/config/sql/test-data.sql")
                .build();
        }
    }
    

    그리고 다른 하나 :

    @Configuration
    @Profile("production")
    public class JndiDataConfig {
    
        @Bean(destroyMethod="")
        public DataSource dataSource() throws Exception {
            Context ctx = new InitialContext();
            return (DataSource) ctx.lookup("java:comp/env/jdbc/datasource");
        }
    }
    
  6. ==============================

    6.응용 프로그램을 실행하는 데 필요한 모든 환경 (예 : dev, qa, stg 등)에 대한 resources 디렉토리에서 특정 .yml 파일을 만듭니다. resources 디렉토리에있는 .yml 파일의 이미지

    응용 프로그램을 실행하는 데 필요한 모든 환경 (예 : dev, qa, stg 등)에 대한 resources 디렉토리에서 특정 .yml 파일을 만듭니다. resources 디렉토리에있는 .yml 파일의 이미지

    pom.xml 파일에 spring-boot-maven-plugin 2.0.5.RELEASE를 사용하고 있다면 다음과 같이 의존성 태그 내에 프로파일을 추가 할 수 있습니다. pom.xml spring-boot-maven-plugin의 이미지 (여러 프로필 태그를 사용하여 여러 프로필을 구성 할 수 있음)

    그런 다음 다음 명령을 사용하여 프로젝트를 빌드하고 실행할 수 있습니다.

    1) mvn clean install
    2) mvn spring-boot:run -Dspring-boot.run.default==qa
    

    그런 다음 프로젝트를 실행하는 동안 기본 프로파일이 qa로 설정되어 있음을 알 수 있습니다. 응용 프로그램을 실행할 때 기본 프로필 표시

  7. ==============================

    7.당신이 maven을 사용한다면, pom.xml 내에서 아래와 같이 프로파일을 정의하십시오

    당신이 maven을 사용한다면, pom.xml 내에서 아래와 같이 프로파일을 정의하십시오

    <profiles>
    <profile>
        <id>local</id>
        <activation>
            <activeByDefault>true</activeByDefault>
        </activation>
        <properties>
            <jdbc.url>dbUrl</jdbc.url>
            <jdbc.username>dbuser</jdbc.username>
            <jdbc.password>dbPassword</jdbc.password>
            <jdbc.driver>dbDriver</jdbc.driver>
        </properties>
    </profile>
    <profile>
        <id>dev</id>
        <properties>
            <jdbc.url>dbUrl</jdbc.url>
            <jdbc.username>dbuser</jdbc.username>
            <jdbc.password>dbPassword</jdbc.password>
            <jdbc.driver>dbDriver</jdbc.driver>
        </properties>
        <dependencies>
            <dependency>
                <groupId>org.postgresql</groupId>
                <artifactId>postgresql</artifactId>
            </dependency>
        </dependencies>
    </profile>
    <profile>
        <id>prod</id>
        <properties>
            <jdbc.url>dbUrl</jdbc.url>
            <jdbc.username>dbuser</jdbc.username>
            <jdbc.password>dbPassword</jdbc.password>
            <jdbc.driver>dbDriver</jdbc.driver>
        </properties>
    </profile>
    

    기본적으로 프로필 없음을 선택하면 로컬 프로필이 항상 사용됩니다.

    Spring 부트 2.x.x에서 특정 프로파일을 선택하려면 아래 명령을 사용하십시오.

    mvn spring-boot:run -Dspring-boot.run.profiles=dev
    

    특정 프로파일의 특성을 사용하여 빌드 / 컴파일하려는 경우, 아래 명령을 사용하십시오.

    mvn clean install -Pdev -DprofileIdEnabled=true
    
  8. from https://stackoverflow.com/questions/40060989/how-to-use-spring-boot-profiles by cc-by-sa and MIT license