2014-12-04 116 views
8

短的問題:使用spring-boot時是否可以使用spring-boot命令行屬性:運行?

您如何配置環境配置文件,或者甚至只是一個可選的配置文件名 春季啓動:運行?

長版本:

是的,我讀了doc。 http://docs.spring.io/spring-boot/docs/current/reference/html/index.html

我有我的應用程序配置設置中的src/main /資源/ 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', '[email protected]') 
insert into users(name, email) values ('Two User', '[email protected]') 

僅存在測試,以檢查這些用戶在回購存在下的單元。

我相信這是真實的,只要是使用MySQL配置運行測試,這些行添加到用戶表。當使用hsql運行測試時,mysql db應該不受影響。 我手動丟棄用戶表運行之間,因爲我想看到手動時,它的存在。

1)如果我運行mvn測試,測試使用配置的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):來看,只有發現application.properties中的屬性(在此測試場景中不存在)。

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

什麼是彈簧引導:運行在啓動時運行方式與運行單元測試和啓動JAR不同嗎? db配置就是一個例子,但理論上我希望能夠在應用程序在本地運行而不是生產配置時指定一組dev配置。

回答

12

行家spring-boot插件叉一個新的進程,所以你需要通過jvmArguments發送任何額外的參數給它,如:

MVN春季啓動:運行-Drun.jvmArguments =「 - Dspring。 profiles.active = MySQL的」

0

該插件允許您指定活動的配置文件(S),直接(也許它3年前是不是這樣的?):

mvn spring-boot:run -Drun.profiles=mysql 
相關問題