简短的问题:
如何配置环境配置文件,甚至只是spring-boot:run的备用配置文件名?
长版:
是的,我阅读了文档。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相同的配置选项集。没有应用程序。
有一个对应的import.sql:
insert into users(name, email) values ('User One', 'one@email.com') insert into users(name, email) values ('Two User', 'two@email.com')
单元测试仅用于检查存储库中这些用户的存在。
我相信,每当使用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
spring-boot:run与启动单元测试和启动jar相比,在启动方面有什么不同?db config是一个示例,但从理论上讲,我希望能够在本地运行应用程序与生产配置时指定一组dev config。
Maven spring- boot插件派生了一个新进程,因此您需要通过jvmArguments向它发送任何其他参数,例如:
spring- boot
mvn spring-boot:运行-Drun.jvmArguments =“-Dspring.profiles.active = mysql”