Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 处理不灵活的第三方库的策略_Java_Spring_Design Patterns_Properties File_Legacy Code - Fatal编程技术网

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配置时需要它
DBLib对PropsLib进行大量静态方法调用以获取配置设置。例如:
String dbHost=PropsLib.getString(“dbHost”)
。PropsLib使用从文件系统读取的非标准
.properties
文件。(非标准意味着它们有一个奇怪的占位符语法,与我们的任何其他
.properties
文件都不匹配)此外,每个环境外部化(覆盖)这些文件的方法是奇怪而笨拙的


有没有什么设计策略可以让我在这里使用现有的基于Spring的配置机制?或者,我唯一可以选择编写自己的PropsLib库实现吗?

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


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

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