druid
1、this.datasourct =new DruidDataSource();
前者是当前mabtis默认连接池的数据源, 后者是druid连接池的数据源;
2、通过赋值后,当前连接池的数据源就是druid了,通过重写方法,对druid进行init,init是为了程序启动的时候初始化xml里面的配置信息,最后得到返回值,也就是druid数据源了。setproperties方法不需要我们实现吗,那为什么已经赋值过了,在getdatasoucre方法中还要强制转换呢。不是已经赋值了吗。
那
DruidDataSourceFactory
这个类是在程序启动的时候,程序会对xml配置进行扫描, 当发现连接池设置的时候,进入这个类进行初始化加载吗?
最后:
为什么打断点后会显示10个链接呢阿。有一个是执行的,9个是休眠的,不是应该只显示1个链接吗,为什么运行的时候只显示1个,剩下9个不显示呢
正在回答 回答被采纳积分+1
同学你好
1、同学理解的是正确的
2、setProperties不需要我们自己手动实现,UnpooledDataSourceFactory类会自动调用setProperties()方法,将xml中的配置赋值到对应的DruidDataSource里相关的属性中
2)this.dataSource取出来的是DateSource类型的,所以这里调用init()方法时需要强转为DruidDataSource

3)可以这么理解
3、因为在配置文件中进行了配置,连接池初始链接数为10个,所以显示的是10个连接;debug时程序会进入调式模式,可以看到初始连接数,而使用运行时,程序运行结束,连接关闭,则不会显示多余的连接

祝学习愉快~
- 参与学习 人
- 提交作业 9410 份
- 解答问题 16556 个
综合就业常年第一,编程排行常年霸榜,无需脱产即可学习,北上广深月薪过万 无论你是未就业的学生还是想转行的在职人员,不需要基础,只要你有梦想,想高薪
了解课程

恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星