数据库中的Spring Boot外部化配置

时间:2015-05-30 13:07:46

标签: 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执行此操作的最佳方法是什么?

1 个答案:

答案 0 :(得分:2)

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

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

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

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