gpt4 book ai didi

java - 跨Java系统的配置设计模式

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:10:30 25 4
gpt4 key购买 nike

问题是老生常谈 - 什么是支持我们系统中的配置文件或系统配置的正确设计?我确定了以下要求:

  • 应该能够实时重新加载并立即获取更改而无需重新部署
  • 对于依赖相同的软件应用程序,例如 SQL 或 memcached 凭据,应该可以在一个隔离的地方引入更改并一次性部署,即使应用程序位于不同位置的不同机器上也是如此
  • 支持许多运行相同应用程序的进程/机器

以及这个设计中我遇到的问题:

  • 每个主要类都应该将自己的“Config”类作为构造函数的输入参数吗?是否应该有一个工厂负责根据正确的配置进行实例化?或者每个类应该只从自己的配置中读取并自动重新加载?
  • 如果类 B 派生自类 A,或围绕它组合,那么继承配置文件是否有意义?
  • 假设类 A 由 M1 和 M2(M 代表“主要”)构造,M1 负责实例化资源。假设资源依赖于我希望在 M1 和 M2 之间通用的 MySQL 凭据,是否有办法避免权衡破坏所有权和放入 A 的配置与在 M1 和 M2 的配置中复制资源?

这些是我现在正在处理的设计问题,我并不真正了解适用于此的设计模式或框架。我在 Java 中,所以非常欢迎任何解决这个问题的库。

最佳答案

您可能想查看 Apache Commons Config ,它提供了广泛的功能。您可以指定多个配置源,并将它们排列成一个层次结构。特别感兴趣的一个特征是为 Configuration Events 提供的条款,允许您的组件注册它们对配置更改的兴趣。

动态更改配置的目标很诱人,但需要对设计进行一些思考。您需要仔细管理这些更改(例如,如果您缩小队列大小会发生什么 - 您会丢弃队列中的现有元素吗?)

关于java - 跨Java系统的配置设计模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12302702/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com