Spring 从数据库引导外部化配置
Spring Boot Externalized Configuration from Database
我有一个 Spring 引导应用程序,它使用默认的 application.yml 来定义配置属性。目前,这个文件有一些特定于环境的信息,例如 SMTP 服务器详细信息,我想将其外部化到数据库 table。我试图在此处 http://www.javacodegeeks.com/2012/11/spring-3-1-loading-properties-for-xml-configuration-from-database.html 修改为传统 Spring 应用程序给出的示例,但到目前为止没有成功。
使用 Spring Boot 执行此操作的最佳方法是什么?
Spring 引导和 Heroku 等部署平台推荐的方法是提供特定于环境的覆盖作为 linux 环境变量。
将它们存储在数据库中的一个缺点是,如果您备份生产数据库并将其恢复到其他环境,它将尝试连接到您的生产邮件服务器/数据库等...
使用 Spring 引导,任何 属性 都可以被环境变量覆盖。
我自己做的另一件事,我很高兴,我将我的一些属性设置为一个特殊值,比如 "MUST_PASS_IN" 或类似的东西,在启动时,我做了一个循环在所有属性上,如果其中任何一个具有该值,我将停止应用程序并将其打印出来。这样我保证我不会忘记在环境中传递一些覆盖。
我有一个 Spring 引导应用程序,它使用默认的 application.yml 来定义配置属性。目前,这个文件有一些特定于环境的信息,例如 SMTP 服务器详细信息,我想将其外部化到数据库 table。我试图在此处 http://www.javacodegeeks.com/2012/11/spring-3-1-loading-properties-for-xml-configuration-from-database.html 修改为传统 Spring 应用程序给出的示例,但到目前为止没有成功。
使用 Spring Boot 执行此操作的最佳方法是什么?
Spring 引导和 Heroku 等部署平台推荐的方法是提供特定于环境的覆盖作为 linux 环境变量。
将它们存储在数据库中的一个缺点是,如果您备份生产数据库并将其恢复到其他环境,它将尝试连接到您的生产邮件服务器/数据库等...
使用 Spring 引导,任何 属性 都可以被环境变量覆盖。
我自己做的另一件事,我很高兴,我将我的一些属性设置为一个特殊值,比如 "MUST_PASS_IN" 或类似的东西,在启动时,我做了一个循环在所有属性上,如果其中任何一个具有该值,我将停止应用程序并将其打印出来。这样我保证我不会忘记在环境中传递一些覆盖。