我在 Web 应用程序中有一个纯 Java 类,想读取 WEB-INF
文件夹下的配置文件。如果文件在类路径中(WEB-INF/classes
文件夹),我知道访问该文件的方法。由于 WEB-INF/classes
文件夹是为 .class
文件准备的,所以我只想将我的配置文件保存在 WEB-INF
文件夹下。
谁能告诉我如何从我的 java 类访问它?
最佳答案
ServletContext.getResourceAsStream()将从相对于 WAR 文件根目录的给定路径加载文件。像这样的东西:
ServletContext ctx;
InputStream configStream = ctx.getResourceAsStream("/WEB-INF/config.properties");
这里的主要问题是您需要访问 servlet 上下文才能执行此操作。您在 servlet 或过滤器中有它,但在应用程序中的非 Web 组件中没有。您有几个选择:
- 通过应用程序范围的变量、注入(inject)或其他方式,使 servlet 上下文从 Web 层到服务层可用
- 将资源加载代码放在web层,暴露给服务层
- 在web层加载配置,并传递给service层
关于java - 如何访问java类中WEB-INF文件夹下的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19139315/