• 关于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目录开始。

  • 相关阅读:
    剑指offer 第十一天
    Java Arrays工具类的使用
    什么是指数加权平均、偏差修正?
    深度学习——优化器算法Optimizer详解(BGD、SGD、MBGD、Momentum、NAG、Adagrad、Adadelta、RMSprop、Adam)
    深度学习——卷积神经网络 的经典网络(LeNet-5、AlexNet、ZFNet、VGG-16、GoogLeNet、ResNet)
    深度学习论文汇总
    剑指offer 第十天
    Java String 类
    Java StringBuffer和StringBuilder类
    剑指offer 第九天
  • 原文地址:https://www.cnblogs.com/aiyyue/p/14934880.html
Copyright © 2020-2023  润新知