你好。
需要将有关数据库连接的信息传输到单独的文件中。我尝试使用此选项,但我仍然无法理解文件的物理位置db.properties
属性 prop = new Properties();
InputStream inputStream = FetchData.class.getClassLoader().getResourceAsStream("/db.properties");
prop.load(inputStream);
Stringdriver = prop.getProperty("驱动程序");
字符串 url = prop.getProperty("url");
String user = prop.getProperty("用户");
String password = prop.getProperty("密码");
试图张贴/web-inf/classes/db.properties
但找不到它。试图指定一个绝对路径 - 结果也是负面的。
他应该在哪里?
示例 1. 我们使用结构
getClass().getResource("/images/logo.png")。由于名称以“/”字符开头,因此被认为是绝对的。搜索资源如下:类路径附加
c:\work\myproject\classes有资源的名称/images/logo.png,导致对文件的搜索c:\work\myproject\classes\images\logo.png。如果找到该文件,则搜索停止。Otherwise: 从jar文件c:\lib\lib.jar中查找文件/images/logo.png,从jar文件的根目录开始查找。示例 2. 我们使用结构
getClass().getResource("res/data.txt")。由于名称不以“/”字符开头,因此被认为是相对的。搜索资源如下:类路径中的路径
c:\work\myproject\classes被分配代码所在的当前类包-/ru/skipy/test,-然后是资源的名称,res/data.txt结果是文件c:\work\myproject\classes\ru\skipy\test\res\data.txt。如果找到该文件,则搜索停止。else:jar文件c:\lib\lib.jar中查找一个文件/ru/skipy/test/res/data.txt(当前类的包名加上资源名),从jar文件的根目录开始查找。在您的情况下,您需要在
getResourceAsStream("db.properties")不指定“/”符号的情况下进行编写,以便在文件夹中找到该文件,project\src\main\resources\但您可以按照示例中的方式放入db.properties并project\db.properties指定