jdbc为什么要破坏双亲委派机制

首先需要注意一点,

JDBC4.0之前使用Class.forName("")方式加载驱动是不会破坏双亲委派的。

JDBC4.0之后使用spi机制才会破坏双亲委派机制。

为什么要破坏双亲委派?

使用双亲委派也存在一定的局限性,在正常情况下,用户代码是依赖核心类库的,所以按照正常的双亲委派加载流程是没问题的;

但是在加载核心类库时,如果需要使用用户代码,双亲委派流程就无法满足;

比如在使用JDBC时, 利用DriverManager.getConnection获取连接时,就会存在这样的问题。

DriverManager是由根类加载器Bootstrap加载的,在加载DriverManager时,会执行其静态方法,加载初始驱动程序,也就是Driver接口的实现类;但是这些实现类基本都是第三方厂商提供的,根据双亲委派原则,第三方的类不可能被根类加载器加载。

posted @   一个苦逼的23届毕业生  阅读(273)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
点击右上角即可分享
微信分享提示