Java Spring里com.mysql.jdbc.Driver的加载时机

Spring 同时被 2 个专栏收录
20 篇文章 0 订阅
721 篇文章 4 订阅

Beans.xml里定义的dataSource bean:

通过调试,发现AbstractApplicationContext的finishBeanFactoryInitialization方法执行完之后,INFO: Loaded JDBC driver: com.mysql.jdbc.Driver就打印了出来:

beanFactory.preInstantiateSingletons():



DefaultListableBeanFactory里维护了从Beans.xml里成功解析出的bean 定义:

Bean实例成功创建后,进入applyMergedBeanDefinitionPostProcessors:

一旦populateBean方法执行完毕之后,Loaded JDBC driver:com.mysql.jdbc.Drive的消息就打印出来了:

拿到这个bean的四个属性名称:

此处将属性对应的值赋上:applyPropertyValues

解析出键值对:


待设置的属性值为:com.mysql.jdbc.Driver

依然是通过反射的方式去设置:

待设置值的实例为:org.springframework.jdbc.datasource.DriverManagerDataSource@1356d4d4
在第127行进行加载:Class.forName(driverClassNameToUse, true, ClassUtils.getDefaultClassLoader());

要获取更多Jerry的原创文章,请关注公众号"汪子熙":

展开阅读全文
  • 0
    点赞
  • 0
    评论
  • 0
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

相关推荐
©️2020 CSDN 皮肤主题: 博客之星2020 设计师:CY__ 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值