我正在阅读12因素应用宣言http://12factor.net/。宣言建议在Enviornment变量中存储应用程序的配置数据。这是否意味着像DB用户名/密码,资源URL这样的属性应该存储为Java Env变量的一部分而不是属性文件?这是一种存储信息的安全方式吗?对我来说,这似乎是存储信息的一种非常笨重的方式。 是否有可以分享的最佳实践/经验?
我能想到的一个选项是在横向上运行单独的配置服务,并使用Env属性连接到配置服务,然后查询配置服务以获取更详细的配置数据。
答案 0 :(得分:6)
12个因子应用程序旨在在编排独立UNIX进程的平台上运行。 UNIX进程是通过环境变量配置的。虽然属性文件是一种成熟的Java约定,但UNIX进程是一种与语言无关的配置进程的方法。
要支持多种配置方法,最佳做法是:
System.getenv('CONFIG')
从流程环境中读取,如果为null properties.getProperty('CONFIG')
从属性文件中读取,如果为null 有关详细信息,请参阅defining config vars for Java apps上的Heroku的说明。
答案 1 :(得分:1)
关于如何在Java中实现12因子配置的文章可能会有所帮助:https://blog.codacy.com/12-factor-config-for-java/
它由自动代码检查工具Codacy发布。
答案 2 :(得分:0)
我们可以使用Spring Centralized Configuration来实现这一点,使用集中式配置,我们可以将所有项目的配置提交到单个存储库中,稍后在编写构建脚本时,我们可以从该存储库覆盖我们的本地配置以使用该集中式配置
点击以下链接即可找到入门指南