[SPRING] 스프링 부트 프로파일을 사용하는 방법
SPRING스프링 부트 프로파일을 사용하는 방법
내가 가진 application.yml, 응용 프로그램 - dev.ymlandapplication - dev.yml
그래서 두 가지 문제를 해결하는 방법? 고마워 ~
해결법
-
==============================
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.이를 위해 .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.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.여기와 같은 하나의 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.
@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.응용 프로그램을 실행하는 데 필요한 모든 환경 (예 : 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.당신이 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
from https://stackoverflow.com/questions/40060989/how-to-use-spring-boot-profiles by cc-by-sa and MIT license
'SPRING' 카테고리의 다른 글
[SPRING] Spring은 파일 확장자를 무시하지 않는다. (0) | 2019.02.15 |
---|---|
[SPRING] ApplicationListener 메서드에서 세션 객체를 가져 오는 방법 (0) | 2019.02.15 |
[SPRING] 스프링 부트 스타터 데이터 휴식, @Notnull 제약 조건이 작동하지 않음 (0) | 2019.02.15 |
[SPRING] 스프링 및 크로스 컨텍스트 : WebAsyncManager를 WebAsyncManager에 캐스팅 할 수 없습니다. (0) | 2019.02.15 |
[SPRING] Spring-Batch : 다음 단계를 결정하기 위해 StepListener에서 사용자 정의 Job Exit STATUS를 리턴하려면 어떻게해야합니까? (0) | 2019.02.15 |