在复杂项目中包含属性文件

时间:2014-06-26 13:08:33

标签: java eclipse properties jar war

我有两个日食项目。 其中一个是包含属性文件的库。 第二个是动态Web项目。

在我的库中,几乎没有可配置的类,它们从属性文件中加载它们的配置参数。

String path = "Resources/Properties/Main.properties";
InputStream stream = getClass().getClassLoader().getResourceAsStream(path);
Properties properties = new Properties();
properties.load(stream);

我的困境是,当我将我的Web项目导出到WAR中时,依赖库项目被打包到一个jar中并放入我的WAR中,然后放入" WEB-INF / lib"目录,这意味着我不能像往常一样加载它们。

我的想法是:

  1. 将这些属性文件复制到我的Web项目中,这非常 痛苦,因为这个库本来是用在很多项目中的, 我不希望分散多个属性文件实例 围绕项目。

  2. 将属性文件放入服务器上的某个系统固定路径,仍然是一个糟糕的设计,使部署此应用程序变得更加困难。

  3. 有没有办法从JAR文件加载属性文件,或者可能是告诉eclipse项目将属性文件从我的库中导出到我的Web项目中的方法? 我很感激你对此事的帮助和想法。

1 个答案:

答案 0 :(得分:0)

如果从类路径加载资源文件,它可以正常工作。 它通过类路径并搜索匹配的资源。 我的问题是类路径资源冲突,我有类似package.classname的类和具有相似路径和文件名的资源。 加载这些资源时,JVM会静默忽略.jar库中的重复实体。 因此,在编写复杂的库结构时要保持敏锐并注意非唯一实体。