gpt4 book ai didi

java - Spring 启动: Configuration Production Vs Development environments

转载 作者:搜寻专家 更新时间:2023-10-31 19:32:06 25 4
gpt4 key购买 nike

我对 SpringBoot 1.5.1 有疑问。我为我的开发环境创建了 application.propertiesapplication-dev.properties

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

这是我在 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 上的日志配置并且它有效!但不是持久性配置的更改。

提前致谢

最佳答案

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

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

在您的application.properties 文件中,您应该启用您喜欢使用的配置文件:spring.profiles.active=prodspring.profiles.active=开发

关于java - Spring 启动: Configuration Production Vs Development environments,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42441239/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com