Java 处理不灵活的第三方库的策略
我需要帮助控制我在应用程序中需要使用的两个第三方库的行为:Java 处理不灵活的第三方库的策略,java,spring,design-patterns,properties-file,legacy-code,Java,Spring,Design Patterns,Properties File,Legacy Code,我需要帮助控制我在应用程序中需要使用的两个第三方库的行为: DBLib,这是数据库访问所必需的 PropsLib,DBLib配置时需要它 DBLib对PropsLib进行大量静态方法调用以获取配置设置。例如:String dbHost=PropsLib.getString(“dbHost”)。PropsLib使用从文件系统读取的非标准.properties文件。(非标准意味着它们有一个奇怪的占位符语法,与我们的任何其他.properties文件都不匹配)此外,每个环境外部化(覆盖)这些文件的
- DBLib,这是数据库访问所必需的
- PropsLib,DBLib配置时需要它
String dbHost=PropsLib.getString(“dbHost”)
。PropsLib使用从文件系统读取的非标准.properties
文件。(非标准意味着它们有一个奇怪的占位符语法,与我们的任何其他.properties
文件都不匹配)此外,每个环境外部化(覆盖)这些文件的方法是奇怪而笨拙的
有没有什么设计策略可以让我在这里使用现有的基于Spring的配置机制?或者,我唯一可以选择编写自己的PropsLib库实现吗?如果
PropsLib
像您描述的那样简单,我建议您在自己的代码中重新实现它,以欺骗DBLib
并检索基于spring的配置,而不是使用您讨厌的属性文件:)
当然,如果
PropsLib
位于.jar
中,您需要在之前将其从该存档中删除。您也可以在.jar
中包含您自己的版本,但这不是强制性的 这听起来太宽泛了,尤其是在没有PropsLib源的情况下。然而,根据你的描述,PropsLib不应该是非常复杂的东西,所以重写它听起来是一个合理的选择。很抱歉,我没有包括任何来源。PropsLib库是专有的,所以我不能。该库的一般功能是:从文件系统读取.properties、解析、返回字符串。