在复习前面的类加载机制时发现对线程上下文类加载器的概念很模糊,所以今天再来总结一下
线程上下文类加载器
我们知道JVM虚拟机采用双亲委派模式来加载类,而且在类加载的整个过程中只有在加载阶段可以别程序员操作,加载器通过类的全限定名在class文件的二进制流中加载类,并创建类的唯一一个class对象,作为类的全局访问点。我们知道为了实现程序的动态性,我们可以自定义类加载器,通过重写findClas()方法来实现自定义类加载器,再通过重写loadClass()方法打破双亲委派机制,这是一次打破双亲委派,那么还有一种就是使用线程上下文类加载器来打破双亲委派机制。
典型应用就是我们知道java提供一些第三方服务接口(SPI),用的最多的就是jdbc接口,提供数据库服务,允许不同的第三方来实现,但是我们需要来java代码中加载第三方驱动,获得具体的实现代码
使用jdbcDriver连接数据库
(1)首先要导入数据库jar包
(2)加载驱动,创建连接
Class.forName("com.mysql.jdbc.Driver");
con