我有一堆文本、xml 和其他文件(即资源),我需要在 java web 应用程序中使用 servlet 访问它们。例如,有一个xml文件,其中一部分是由用户查询用servlet返回的。我正在使用汤姆猫。存储这些文件并从 java 代码访问它们的最佳实践是什么?
1) 我应该将它们放在哪里的默认文件夹是什么,我需要将它们放入 Web 存档还是放入其中一个 Jars 中?
2)如何从java代码访问文件?我如何设置它们的路径,以便它可以在任何环境中工作?
附:我读过许多与此主题相关的文章,其中大多数建议将资源存储在 jar 中并使用 java.lang.Class.getResourceAsStream(String) 访问它们。这看起来很奇怪,因为类和数据应该分开。
使用类加载器加载静态资源是完全可以的。例如,这就是 ResourceBundle 加载国际化属性文件的作用。
把它们放进去WEB-INF/classes
与你的类文件一起,或者在一个 jar 里面WEB-INF/lib
,并按照您已阅读的答案所示使用 ClassLoader 加载它们。
这并不禁止您将这些文件放置在与项目中的 Java 源文件不同的目录中。构建过程应该确保将它们放在运行时的适当位置。 Maven和Gradle的约定是将源文件放在下面src/main/java
以及下面的资源文件src/main/resources
.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)