首页 > 其他 > 详细

Mybatis,DataSource生成解析

时间:2018-11-19 10:44:55      阅读:178      评论:0      收藏:0      [点我收藏+]
1.Configuration初始化,加载JNDI,POOLED,UNPOOLED的工厂类,并加载到TypeAliasRegistry的Map<String, Class<?>> TYPE_ALIASES = new HashMap<>()中:

图1.

技术分享图片

 

2.解析environments标签:
图2.

技术分享图片

这时会根据标签下面的<transactionManager type="JDBC"/>来判断生成哪一种事务的类:
图3.
技术分享图片
在解析<dataSource type="POOLED">来判断生成哪一张工厂类,并生成Datasource:
图4.

技术分享图片

图5.
技术分享图片
其实POOLED的工厂类是UNPOOLED的子类,POOLED的DataSource也是UNPOOLED的子类,而且在POOLED的无参构造中其实实例化的就是UNPOOLED的DataSource:
图6.
技术分享图片
图7.
技术分享图片
那么对于设置了<dataSource type="POOLED">来说,上面的如poolMaximumActiveConnections这些属性都是可以配置在xml中的,通过UnpooledDataSourceFactory的setProperties方法来设置。
图8.
技术分享图片
最后会把生成的DataSource放入到Environment中,Configuration最后在加载Environment,如图4。
至于什么时候连接数据库,怎么实现“连接池”的,怎么完成一次查询的,下次在分析。
如果有讲的不对的请指出,谢谢,共同进步!

Mybatis,DataSource生成解析

原文:https://www.cnblogs.com/shenqiaqia/p/9981376.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!