繁体   English   中英

提取Java应用程序中属性文件的硬编码路径名的可能方法

[英]Possible ways to abstract away hard-coded path-names for properties file in java app

我正在尝试将第三方应用程序绑定到我们的项目中,但是发现它们的属性文件的Unix路径已被硬编码为几个类。 可能可以对其设置进行最小的更改,所以我的问题是:实现此目的的可能(最快)方法是什么? 第三方应用程序既不使用ant也不使用spring,而仅使用将代码编译成.jar的构建脚本,该.jar可从命令行调用。

您可以将属性文件读取为资源。 然后,您只需要将包含这些文件的目录放入类路径即可。

您实际上并没有说出要实现的目标。 您的应用程序会确定一些路径并将其通过API传递给第三方应用程序吗? 您的环境中的某些内容(例如命令行参数)会指定文件的位置吗?

我首先要重构它们的代码,以便可以肯定地知道任何硬编码的字符串都保存在一个定义的位置。 因此,例如,如果他们有

readProperties("/usr/thing/propertyFileXxx.txt");

要么

static final String  PROPERTY_XXX = "/usr/thing/propertyFileXxx.txt";
readProperties(PROPERTY_XXX);

我将首先合并到属性的单个访问器

readProperties(PROPERTY_XXX_ENUM);

因此,现在我们有了定义明确的单个代码,该代码确定从何处获取每种类型的属性以及属性类型的特定列表。

然后,我们需要一种可控制的方式来定义要在运行时使用的属性文件集。 我使用了@tangens提出的想法,即从添加到类路径的特定目录中将属性作为资源加载。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM