configuration - 软件中的配置和环境变量之间的主要区别是什么?
问题描述
软件中的配置和环境变量之间的主要区别是什么?
对于 conf 文件中的配置,例如address、port和file path,它们也可以被视为环境变量。但是对于像dfs.namenode.audit.log.debug.cmdlist(仅当审计日志级别为调试时才写入 HDFS namenode 审计日志的 NameNode 命令的逗号分隔列表。)在 HDFS 中的配置,不应该是环境变量。在我看来,配置和环境变量都是软件运行环境的设置参数。因此,配置可以看作是广义的环境变量。但确实存在一些反例。我想知道这个想法有什么问题以及配置和环境变量之间的区别。
解决方案
应用程序的参数不仅可以通过配置文件或环境变量指定,还可以通过其他方式指定,例如命令行参数、Windows 注册表或数据库表。
我认为将任何一种方法视为另一种方法的概括是没有用的。相反,不同的方法是相互竞争的技术。通过类比,CD 与录音带和黑胶唱片竞争,而不是对它们的概括。
可以集成多种竞争技术。例如,音乐系统可能集成了磁带机、转盘、CD 播放器、收音机和 AUX 输入端口(例如连接到 MP3 播放器),因此您可以欣赏来自多种竞争技术中的任何一种的音乐。如果您想查看集成多种竞争配置技术的示例,我建议您阅读Config4* 入门指南的第 2.5 和 3.5 节,了解Config4*配置文件解析器(由我开发)如何与环境变量和命令集成线选项。
推荐阅读
- java - KNIME:比较一列是否包含另一列的子集
- r - 在管道中的同一对象上调用两个不同的函数 (%>%)
- java - 为什么我的登录和注册不起作用甚至重定向?
- c# - SAP.Middleware.Connector.RfcSerializationException:未找到 RFCID.TableContLZ 的结束标记
- javascript - 如何修复 TypeError:无法在我的 MEAN 堆栈应用程序中读取未定义的属性“地图”?
- java - Spring Java应用程序找不到密钥库文件
- postgresql - NOT NULL 表达式中的 NULL 值
- javascript - React:改变消费者的上下文
- c# - 是否可以在 Grpc.Core 中接受自签名证书?
- python - 如何从 csv 中获取具有开始时间和结束时间的两个日期范围之间的重叠?