Maven项目根目录:
它编译的路径直接位于classes下面,这个路径其实就是classPath的路径,所以,在resources 根目录下的配置文件其实就是 classPath的路径。
Java中的getResourceAsStream有以下几种:
- T.Class.getResourceAsStream(path) : path 不以’/'开头时默认是从此类所在的包下取资源,以’/'开头则是从ClassPath根下获取。其只是通过path构造一个绝对路径,最终还是由ClassLoader获取资源。
String path="/ApplicationContext.xml";
InputStream resourceAsStream = T11.class.getResourceAsStream(path);
//InputStream resourceAsStream = this.getClass().getResourceAsStream(path);
2.T.class.getClassLoader().getResourceAsStream(path):默认则是从ClassPath根下获取,path不能以’/'开头,最终是由ClassLoader获取资源。
String path1="ApplicationContext.xml";
InputStream resourceAsStream1 = T11.class.getClassLoader().getResourceAsStream(path1);
- ServletContext. getResourceAsStream(String path):默认从WebAPP根目录下取资源,Tomcat下path是否以’/'开头无所谓,当然这和具体的容器实现有关; Jsp下的application内置对象就是上面的ServletContext的一种实现。