복붙노트

[SPRING] spring-boot를 사용할 때 spring-boot 명령 줄 속성을 사용할 수 있습니까?

SPRING

spring-boot를 사용할 때 spring-boot 명령 줄 속성을 사용할 수 있습니까?

짧은 질문 :

어떻게 환경 프로파일을 구성 할 수 있습니까? 또는 심지어 다른 구성 파일 이름을 구성 할 수 있습니까? 봄 - 부팅 : 실행?

긴 버전 :

네, 전 의사를 읽었습니다. http://docs.spring.io/spring-boot/docs/current/reference/html/index.html

src / main / resources / application-mysql.properties에 내 응용 프로그램 구성 설정이 있습니다.

# Specify the DBMS
spring.jpa.database = MYSQL

# Other Mysql config properties

spring.jpa.hibernate.ddl-auto=create

해당 application-hsql.properties가 있으며 Hsql에 동일한 구성 옵션 집합이 들어 있습니다. application.poperties가 없습니다.

해당하는 import.sql이 있습니다.

insert into users(name, email) values ('User One',  'one@email.com')
insert into users(name, email) values ('Two User', 'two@email.com')

단위 테스트는 repo에서 이러한 사용자의 존재를 확인하기 위해 존재합니다.

테스트가 MySql 구성을 사용하여 실행될 때마다 해당 행이 users 테이블에 추가된다는 것이 사실이라고 믿습니다. 테스트가 hsql로 실행될 때, mysql db는 영향을받지 않아야한다. 내가 수동으로 볼 때 원하기 때문에 실행 사이에 수동으로 사용자 테이블을 삭제하고 있습니다.

1) mvn test를 실행하면 테스트는 구성된 db :

mvn -Dspring.profiles.active=mysql clean test 

mysql 데이터베이스 행을 생성하고

mvn -Dspring.profiles.active=hsql clean test 

하지 않습니다.

2) 패키지를 만들고 결과 jar 파일을 실행하면 구성 파일 이름을 지정할 수 있습니다.

java -jar -Dspring.profiles.active=mysql  ./target/app.jar

3) spring-boot : run으로 실행하면 application.properties (이 테스트 시나리오에는 존재하지 않음)의 속성 만 발견됩니다.

mvn -Dspring.profiles.active=mysql clean spring-boot:run

스프링 부트 : 실행은 단위 테스트를 실행하고 항아리를 걷어차는 것보다 다르게 실행합니까? db config는 하나의 예이지만 이론적으로 응용 프로그램이 프로덕션 구성과 비교하여 로컬로 실행될 때 dev configs 세트를 지정할 수 있기를 원합니다.

해결법

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

    1.Maven 스프링 부트 플러그인은 새로운 프로세스를 포크하므로 jvmArguments를 통해 추가 매개 변수를 보내야합니다 (예 :

    Maven 스프링 부트 플러그인은 새로운 프로세스를 포크하므로 jvmArguments를 통해 추가 매개 변수를 보내야합니다 (예 :

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

    2.플러그인을 사용하면 활성 프로필을 직접 지정할 수 있습니다 (3 년 전의 경우가 아닐 수도 있습니다).

    플러그인을 사용하면 활성 프로필을 직접 지정할 수 있습니다 (3 년 전의 경우가 아닐 수도 있습니다).

    mvn spring-boot:run -Drun.profiles=mysql
    
  3. from https://stackoverflow.com/questions/27302450/are-spring-boot-command-line-properties-available-when-using-spring-bootrun by cc-by-sa and MIT license