创建具有某些配置的新应用程序时。 该配置可以存在于以下位置之一
问题是它们之间的优先级是什么? 例如,如果我从命令行传递配置,它将覆盖此配置的配置文件值
答案 0 :(得分:2)
所以对我来说,优先级从高到低依次排列:
命令行(将覆盖所有内容),环境变量,配置文件和默认值。
通常,命令行参数应该能够覆盖所有配置值。
环境变量应该能够覆盖配置文件的值,但不能覆盖命令行参数。如果要使用环境变量覆盖配置文件值,则:X = 3可以覆盖配置文件值X = 1,然后使用X = 2可以通过命令行完成。
我认为这是管理这种层次结构的最灵活的方法。