【发布时间】:2010-10-28 21:11:48
【问题描述】:
我的问题是一个你认为很常见的问题,但到目前为止我还没有找到解决方案。
在 Tomcat 5.5 下构建 Java Web 应用程序(尽管要求它可以部署在任何地方,例如在 WebLogic 环境下,因此需要将资源作为流加载)。良好的实践要求资源文件放在 WEB-INF/classes 下并使用 ClassLoader 的 getResourceAsStream() 方法加载。当您知道要加载的资源的名称时,一切都很好。
我的问题是我需要加载位于 classes 子目录中的所有内容(包括递归地加载到非空子目录中)。
所以,例如,如果我在 WEB-INF/classes 下有以下内容:
文件夹X/文件夹Y
folderX/folderY/fileA.properties
folderX/fileB.properties
我需要加载 fileA.properties 和 fileB.properties 类,但实际上在应用程序启动之前并不知道它们的名称(即我需要能够从 WEB-INF/classes 下的任何目录中任意加载资源)。
最优雅的方法是什么?我可以查询什么对象来找到我需要的信息(每个所需资源的资源路径)?最好使用非 servlet 特定的解决方案(如果可能,将其全部保存在类加载框架中)。
提前致谢!
【问题讨论】:
标签: java classloader