在研究MyBatis的parsing包时,想测试一下利用Xpath查找xml中的元素,遇到了一个如何获取项目类路径的问题,于是,就顺便总结一下获取类路径的方式。如下文:
一、非web项目下如何获取类路径?
- 利用Class(支持相对路径和绝对路径)的getResourceAsStream和getResouce方法
- 利用ClassLoader(仅支持绝对路径,从classpath的根路径下查找,但路径开头不加斜杠)的getResourceAsStream和getResouce方法
【注意】:【建议使用Thread.currentThread().getContextClassLoader(),其他方式获取类加载器可能会导致和当前线程所运行的类加载器不一致】
二、web项目下如何获取类路径?
- 通过HttpServletRequest获取
- 通过HttpSession获取
三、如何加载类路径下的Properties文件?
- 方法一:通过调用Properties的load方法加载
- 方法二:通过ResourceBundle的getBundle方法
获取使用指定的基本名称,默认的语言环境和调用者的类加载器获取资源包
四、如何让maven的test目录下读取到main中的resource目录配置呢?
通过在pom.xml build中添加testResource标签.如下: