class.getClassLoader().getResourceAsStream

实现获取在classpath路径下的资源文件的输入流

因为当web项目运行时,IDE编译器会把src下的一些资源文件移至WEB-INF/classes,classPath目录其实就是这个classes目录。这个目录下放的一般是web项目运行时的class文件、资源文件(xml,properties...);

class是获取当前类的class对象,getClassLoader()是获取当前的类加载器,什么是类加载器?简单点说,就是用来加载java类的,类加载器就是负责把class文件加载进内存中,并创建一个java.lang.Class类的一个实例,也就是class对象,并且每个类的类加载器都不相同.getResourceAsStream(path)是用来获取资源的,因为这是ClassLoader(类加载器)了获取资源,而类加载器默认是从classPath下获取资源的,因为这下面有class文件.所以这段代码总的意思是通过类加载器在classPath目录下获取资源.并且是以流的形式。我们知道在Java中所有的类都是通过加载器加载到虚拟机中的,而且类加载器之间存在父子关系,就是子知道父,父不知道子,这样不同的子加载的类型之间是无法访问的(虽然它们都被放在方法区中),所以在这里通过当前类的加载器来加载资源也就是保证是和类类型同一个加载器加载的

猜你喜欢

转载自www.cnblogs.com/oyina/p/11832207.html