SpringBoot:配置生产与开发环境

时间:2017-02-24 14:33:38

标签: java spring-boot

我遇到SpringBoot 1.5.1的问题。我为我的开发环境创建了application.propertiesapplication-dev.properties

主要区别在于持久性:在生产中(application.properties)有一个JNDI(在Tomcat上配置),在dev中有一个本地数据库(H2)。

这是我application.properties中的conf:

spring.datasource.jndi-name=jdbc/db

这是application-dev.properties

spring.datasource.url=jdbc:h2:file:~/db
spring.datasource.username=sa
spring.datasource.password=
spring.datasource.driverClassName=org.h2.Driver

但是当我开始使用dev profile

2017-02-24 15:25:39.948  INFO 7912 --- [           main] it.geny.MmqApplication                   : The following profiles are active: dev

我的应用停止了,因为它没有找到JNDI jdbc / db !!!!我正在尝试更改application-dev.properties上的日志配置,它可以正常工作!但不是持久性配置的变化。

提前致谢

1 个答案:

答案 0 :(得分:9)

application-dev.properties的所有属性都会覆盖application.properties中的属性。但是如果application.properties中的属性没有在dev中设置,那么它们也会被包含在上下文中。如果启用了属性spring.datasource.jndi-name,则会忽略所有spring.datasource属性。

解决方案是创建另一个属性文件,如application-prod.properties并在那里设置spring.datasource.jndi-name。数据源内容可以保留在application-dev.properties

application.properties文件中,您应该启用您要使用的个人资料:spring.profiles.active=prodspring.profiles.active=dev