配置优先级-最佳做法

时间:2019-05-07 09:17:01

标签: architecture devops software-design

创建具有某些配置的新应用程序时。 该配置可以存在于以下位置之一

  • Env'变量
  • 配置文件
  • 命令行
  • Defualt

问题是它们之间的优先级是什么? 例如,如果我从命令行传递配置,它将覆盖此配置的配置文件值

1 个答案:

答案 0 :(得分:2)

所以对我来说,优先级从高到低依次排列:

命令行(将覆盖所有内容),环境变量,配置文件和默认值。

通常,命令行参数应该能够覆盖所有配置值。

环境变量应该能够覆盖配置文件的值,但不能覆盖命令行参数。如果要使用环境变量覆盖配置文件值,则:X = 3可以覆盖配置文件值X = 1,然后使用X = 2可以通过命令行完成。

我认为这是管理这种层次结构的最灵活的方法。