![](/img/trans.png)
[英]How to move hard-coded JDBC connection properties out of Java class and into a properties file?
[英]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.