一尘不染

SpringBoot:配置生产与开发环境

spring-boot

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

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

这是我的conf application.properties

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

但是当我从开发人员简介开始时

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并且可以正常工作!但不更改持久性配置。

提前致谢


阅读 443

收藏
2020-05-30

共1个答案

一尘不染

的所有属性application- dev.properties会覆盖中的属性application.properties。但是如果application.propertiesindev中没有设置的属性,它们也将包含在上下文中。如果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

2020-05-30