我对SpringBoot 1.5.1有问题。我已经创建application.properties和application- dev.properties我的开发环境。
application.properties
application- dev.properties
主要区别在于持久性:生产(application.properties)中有一个JNDI(在Tomcat上配置),而在开发中有一个本地数据库(H2)。
这是我的conf application.properties:
spring.datasource.jndi-name=jdbc/db
这是application-dev.properties:
application-dev.properties
spring.datasource.url=jdbc:h2:file:~/db spring.datasource.username=sa spring.datasource.password= spring.datasource.driverClassName=org.h2.Driver
但是当我从开发人员简介开始时
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并且可以正常工作!但不更改持久性配置。
提前致谢
的所有属性application- dev.properties会覆盖中的属性application.properties。但是如果application.propertiesindev中没有设置的属性,它们也将包含在上下文中。如果spring.datasource.jndi- name启用了该spring.datasource属性,则将忽略所有属性。
spring.datasource.jndi- name
spring.datasource
解决方案是创建另一个属性文件,例如application-prod.properties并在spring.datasource.jndi- name那里进行设置。数据源的内容可以保留在中application-dev.properties。
application-prod.properties
在application.properties文件中,应启用您要使用的配置文件:spring.profiles.active=prod或spring.profiles.active=dev
spring.profiles.active=prod
spring.profiles.active=dev