zoukankan      html  css  js  c++  java
  • 关于idea问题设置bundle路径问题的一点想法

    先上部分代码。

    ResourceBundle rBundle = ResourceBundle.getBundle("settings/db");
    url = rBundle.getString("urlPre") + rBundle.getString("host") + ":" + rBundle.getString("port") + "/" + rBundle.getString("database") + rBundle.getString("postfix");
    driver=rBundle.getString("driverName");
    username=rBundle.getString("username");
    password=rBundle.getString("password");
    // (已解决,需要放到resource root目录文件下)
    // (查看形式:文件->项目结构->facets最下面有Resource Root)

    这是已经修改好了的格式,当使用ResourceBundle.getBundle("db");语句通过写bundle配置文件形式来配置数据库连接时,明明已经将db.properties文件放在了src目录下,依然找不到该配置文件。
    困扰了我大概一天时间,之后由于改各种路径的方式都试遍了,仍然找不到解决方案,所以采用另外的方式来获取配置文件。
    方法一:通过FileInputStream()方法,
         或使用文件FileInputStream()方法
    Properties prop = new Properties();
    InputStream inputStream = new FileInputStream("src/db.properties");//这个路径对应的db.properties放在src目录下
    prop.load(inputStream);
    url = prop.getProperty("urlPre") + prop.getProperty("host") + ":" + prop.getProperty("port") + "/" + prop.getProperty("database") + prop.getProperty("postfix");
    driver = prop.getProperty("driverName");
    username = prop.getProperty("username");
    password = prop.getProperty("password");

    方法二:与法一类似,只是形式不太一样
    InputStream inputStream = [Java文件类名].class.getClassLoader().getResourceAsStream("XXX.properties");

    配置文件位置同样放置在src目录下

    通过这两种方法都能获取到配置文件对象,之后就开始继续写代码了。

    然后由于某种强迫症的思想的驱使,我又开始搞这个ResourceBundle(),为什么就是找不到呢?

    我右击文本编辑器的页面

    发现了这样的几个路径

     pom.xml就是Maven依赖的那个文件;

    source root和resource root引起了我的强烈怀疑

    由于我的Java Web项目是后来应用的maven依赖,所以其实我的src目录下是main目录和test目录

     而main目录下又分java目录和resource目录

     对于我的项目结构,source root会回到java目录,而resource root目录会回到resources目录。

    我又把我的db.properties文件分别放到java和resources目录下进行测试,

    当放到resources目录下时,奇迹发生了,db可以被识别到了。

    我也不想再深究到底是为什么了。

    我的解决方法是,若要让ResourceBundle.getBundle(“配置文件名(无后缀)”);被"find“,需要把配置文件放到resources目录下,即相对路径从resources目录开始。

  • 相关阅读:
    OSPF如何生成默认路由(转)
    H3C MSR830 V5.01 PPPOE拨号配置
    H3C V5 Ipsec 野蛮模式
    OSPF NSSA区域内有多个ABR时,7类LSA转换5类LSA的站点选择(转)
    什么是MTU?为什么MTU值普遍都是1500?(转)
    OSPF链路状态数据的结构
    Cisco Cpos STM 配置示例(转)
    Juniper SRX Junos升级(自己做的升级)
    Juniper SRX Junos升级(转)
    接口自动化测试 python+request+excel(踩‘坑’)
  • 原文地址:https://www.cnblogs.com/aiyyue/p/14934880.html
Copyright © 2011-2022 走看看