SpringBoot:配置生产与开发环境

Lui*_* C. 5 java spring-boot

我有SpringBoot 1.5.1的问题.我已经创建application.propertiesapplication-dev.properties我的开发环境.

主要区别在于持久性:在production(application.properties)中有一个JNDI(在Tomcat上配置),在dev中有一个本地db(H2).

这是我的尴尬application.properties:

spring.datasource.jndi-name=jdbc/db
Run Code Online (Sandbox Code Playgroud)

这是application-dev.properties:

spring.datasource.url=jdbc:h2:file:~/db
spring.datasource.username=sa
spring.datasource.password=
spring.datasource.driverClassName=org.h2.Driver
Run Code Online (Sandbox Code Playgroud)

但是当我开始使用dev配置文件时

2017-02-24 15:25:39.948  INFO 7912 --- [           main] it.geny.MmqApplication                   : The following profiles are active: dev
Run Code Online (Sandbox Code Playgroud)

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

提前致谢

Pat*_*ick 9

application-dev.properties覆盖属性的所有属性application.properties.但是如果in 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