来自数据库的 Spring Boot 外部化配置

标签 spring spring-boot

我有一个 Spring Boot 应用程序,它使用默认的 application.yml 来定义配置属性。目前,这个文件有一些特定于环境的信息,例如 SMTP 服务器详细信息,我想将其外部化到数据库表中。我试图在此处修改为传统 Spring 应用程序给出的示例 http://www.javacodegeeks.com/2012/11/spring-3-1-loading-properties-for-xml-configuration-from-database.html但到目前为止还没有运气。

使用 Spring Boot 执行此操作的最佳方法是什么?

最佳答案

Spring Boot推荐的方法,部署平台如Heroku是提供特定于环境的覆盖作为 linux 环境变量。

将它们存储在数据库中的一个缺点是,如果您备份生产数据库并将其恢复到其他环境,它将尝试连接到您的生产邮件服务器/数据库等...

使用 Spring Boot,任何属性都可以被环境变量覆盖。

我自己做的另一件事,我很高兴,我将我的一些属性设置为一个特殊值,比如“MUST_PASS_IN”或类似的东西,在启动时,我对所有属性进行循环如果其中任何一个具有该值,我将停止应用程序并将其打印出来。这样我保证我不会忘记在环境中传递一些覆盖。

关于来自数据库的 Spring Boot 外部化配置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30546587/

相关文章:

Java自定义Annotation聚合多个注解

java - 传输方案未识别 : [tcp]

spring-boot - 在 Spring boot gradle multiproject 中,gradlew bootRun 可以,但是运行生成的 jar 不行

java - 为什么我在 JBoss7.1.EAP 中加载 applicationContext 时出现 java.lang.NoSuchMethodError

spring - 如何使用 spring-boot 外部化数据源配置?

java - 如何使用 DaoAuthenticationProvider 以编程方式使用 Spring Security 对用户进行身份验证

java - JPA 存储库概念是一个通用概念还是由 Spring 框架创造的?

java - SQL JDBC 模板参数如果参数值为空则使用数据库中的内容

javascript - 将 JWT token 传递给 SockJS

java - 是否有任何开箱即用的 spring ingetration 模式用于使用动态队列中的消息并处理它们?