12-Factor Apps建议您使用环境变量配置您的应用程序。到目前为止,一切都很好。如果您需要设置连接字符串,我可以很容易地想象这是一个很好的方法,例如
但是,如果您有更复杂的配置和大量的值怎么办?我肯定不想拥有 50 多个环境变量,对吗?
我怎样才能解决这个问题,并且仍然符合 12-Factor Apps 的想法?
12-Factor Apps建议您使用环境变量配置您的应用程序。到目前为止,一切都很好。如果您需要设置连接字符串,我可以很容易地想象这是一个很好的方法,例如
但是,如果您有更复杂的配置和大量的值怎么办?我肯定不想拥有 50 多个环境变量,对吗?
我怎样才能解决这个问题,并且仍然符合 12-Factor Apps 的想法?
通过快速阅读您提供的配置链接,我同意作者关于存在普遍问题的说法,但我不相信他们提出的解决方案总是最好的。像你一样,我不喜欢必须定义几十个环境变量来配置应用程序的想法。所以这里有一些替代的想法。
首先,阅读Config4* 入门指南的第 2 章(免责声明:我是该软件的主要作者)。特别要注意的是,它对我所说的自适应配置的支持可以大大有助于解决您提出的问题。Config4* 是终极解决方案吗?可能不是,但我认为这是朝着正确方向迈出的一大步。
其次,您正在开发/维护的任何应用程序都有可能已经确定了特定的配置技术,例如 XML 文件或 Java 属性文件,并且迁移到使用 Config4* 是不可行的。这就提出了一个问题:当您有多个将部署应用程序的环境(例如开发、UAT、登台和生产)时,您是否可以采取任何措施来避免诸如基于 XML 的配置文件的扩散?我在另一篇 StackOverflow文章中概述了处理此问题的方法。