处理不灵活的第三方库的策略

Strategies for dealing with inflexible 3rd party libraries

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

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

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

如果 PropsLib 像您描述的那样简短易行,我建议您在自己的代码中重新实现它以欺骗 DBLib 并检索基于 spring 的配置,而是使用您 讨厌 :)

的属性文件

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