读取属性文件

2022-09-04 06:08:04

我创建了一个 REST Web 服务,在其中创建了一个 config.properties 文件,用于在应用程序中存储和检索一些用户名和密码。我把它存储在/src/main/resources/config.properties中。

当我尝试从 Eclipse 的 java 代码加载它时,它工作正常。但是当我在tomcat中部署它时,它没有加载。我用来加载属性文件的代码是

properties.load(new FileInputStream("src/main/resources/config.properties"));

任何人都可以帮我解决这个问题


答案 1

你部署到Tomcat的是一个战争文件。Tomcat 不知道也不关心应用程序源代码所在的目录。

中的文件由 Maven 复制到该目录,然后将此目录复制到已部署的 Web 应用程序的目录,该目录位于 web 应用的类路径中。所以你只需要使用类装入器装入文件:src/main/resourcestarget/classesWEB-INF/classes

properties.load(MyClass.class.getResourceAsStream("/config.properties"));

(MyClass 是你的 webapp 的任何类)。


答案 2

如果您的属性文件位于 WEB-INF/类中,则可以轻松执行此操作。在这种情况下,只需写一些类似的东西

Properties props = new Properties();
props.load(getClass().getResourceAsStream("/name.properties"));

显然,该文件可能位于类的子文件夹中。在这种情况下,您必须在调用 getResourceAsStream() 时指定完整路径。


推荐