【问题标题】:Strategies for dealing with inflexible 3rd party libraries处理不灵活的 3rd 方库的策略
【发布时间】:2015-11-12 10:54:42
【问题描述】:

我需要帮助来控制我需要在我的应用程序中使用的几个 3rd 方库的行为:

  • DBLib,是数据库访问所必需的
  • PropsLibDBLib需要配置

DBLibPropsLib 进行大量静态方法调用以获取配置设置。例如:String dbHost = PropsLib.getString("dbHost")PropsLib 使用从文件系统读取的非标准 .properties 文件。 (非标准意味着它们有一个古怪的占位符语法,与我们的任何其他 .properties 文件都不匹配)此外,在每个环境中外部化(覆盖)这些文件的方法既奇怪又笨重。

是否有任何设计策略可以让我在这里使用现有的基于 Spring 的配置机制?还是我唯一的选择是编写自己的 PropsLib 库实现?

【问题讨论】:

  • 这听起来太宽泛了,尤其是在没有 PropsLib 源的情况下。尽管如此,根据您的描述, PropsLib 不应该是非常复杂的东西,因此重写它听起来是一个合理的选择。
  • 很抱歉我没有提供任何来源。 PropsLib 库是专有的,所以我不能。该库的一般功能是:从文件系统读取 .properties,解析,返回字符串。

标签: java spring design-patterns properties-file legacy-code


【解决方案1】:

如果PropsLib 像您描述的那样简单易懂,我建议您在自己的代码中重新实现它以欺骗DBLib 并检索您的基于弹簧的配置,而不是使用您讨厌的属性文件 :)

当然,如果PropsLib.jar 中,您需要先从该存档中删除它。您还可以在.jar 中包含您自己的版本,但这不是强制性的。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-06-17
    • 1970-01-01
    • 1970-01-01
    • 2012-08-06
    • 2018-10-22
    • 1970-01-01
    • 2010-09-24
    • 2014-10-22
    相关资源
    最近更新 更多