如何使用ResourceBundle避免Java应用程序中的硬编码配置路径?
时间:2020-03-06 14:56:40 来源:igfitidea点击:
我想消除对Java应用程序中配置数据的硬编码路径的依赖,我知道使用ResourceBundle我使用类加载器来查找资源。
有人可以告诉我如何适当使用ResourceBundle替换资源的硬编码路径(例如,类所需的.properties配置数据文件)吗?尽可能简单地举一个例子,谢谢。
解决方案
我们将要检查Resource.getBundle(String)。我们在类路径上传递资源的标准名称,以作为属性文件加载。
Resource.getBundle(..)背后的技巧是使用类加载器。我们可以通过this.getClass()。getClassLoader()进行访问,从而在类路径中加载多数民众赞成。
Resource.getBundle(..)是在资源/定位主题中使用它的实用助手。
在Java 6之前,ResourceBundle通常允许:
- 使用PropertyResourceBundle的一组本地化属性文件中的字符串
- 使用ListResourceBundle的一组本地化类中的对象
Java 6附带了ResourceBundle.Control类,该类为其他ResourceBundles的来源打开了大门,例如:
- XML文件(请参阅Javadoc中的示例2)
- 数据库行
希望这可以帮助。
我们不需要ResourceBundle。一个简单的Properties对象可以完成这项工作。只需使用类加载器为属性文件获取输入流,然后使用它来加载de值即可。如果我们需要处理更复杂的用户配置,请使用首选项api。
亲切的问候