我刚刚开始使用在Tomcat上运行的jax- rs来设置Web服务。有没有一种方法可以将属性文件与我的Java项目捆绑在一起(在Eclipse中),以便我可以在运行时从中读取属性?另外,如果可能的话,将其放置在最佳位置(以便无法通过url看到),WebContent,WEB- INF等在哪里?
谢谢。
几种选择:
选项1:可以将其放在类路径下(在Eclipse中,将其放在源文件夹下),因此可以通过Classloader访问它: MyClass.class.getResourceAsStream("myproperties.properites")
MyClass.class.getResourceAsStream("myproperties.properites")
请注意,MyClass也必须位于相同的源文件夹中(实际上有点复杂,它必须位于相同的类加载器层次结构中,但是同一文件夹中的任何类都可以完成此工作)
选项2:将其放在WEB- INF文件夹中。这是首选方法,因为您不需要处理类路径。您将需要一个ServletContext来访问它:javax.servlet.ServletContext.getResourceAsStream("WEB- INF/myproperties.properites")
javax.servlet.ServletContext.getResourceAsStream("WEB- INF/myproperties.properites")
在jax-rs中,您可以在任何已注册资源或提供程序中使用@Context批注获取ServletContext。