MyBatis中SqlSessionFactoryBean的作用
Posted 自闭青年
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MyBatis中SqlSessionFactoryBean的作用相关的知识,希望对你有一定的参考价值。
为什么返回的是SqlSessionFactory对象而不是SqlSessionFactoryBean
首先spring在初始化的时候会将所有创建的单例以Map<K,V>的形式放入singletonObjects,同时调用FactoryBean的getObject()将返回的对象以Map<K,V>的形式放入factoryBeanObjectCache
如{sqlSessionFactory=org.apache.ibatis.session.defaults.DefaultSqlSessionFactory@d997f9}
然后getBean的时候,spring利用getSingleton从singletonObjects获取单例(这里是SqlSessionFactoryBean对象),判断是否实现了FactoryBean接口,若实现了就从factoryBeanObjectCache利用beanname(这里是sqlSessionFactory)重新获取,若未实现则返回getSingleton获取的单例
原作者:https://blog.csdn.net/Mask_V/article/details/79368884
以上是关于MyBatis中SqlSessionFactoryBean的作用的主要内容,如果未能解决你的问题,请参考以下文章
mybatis的sqlSessionFactory的加载过程
MyBatis根据 XML 构建 SqlSessionFactory 时 Resources.getResourceAsStream 和 SqlSessionFactory 报红
Mybatis中SqlSessionFactory和SqlSession学习和原理
MyBatis源码解读——SqlSessionFactory
MyBatis入门——核心对象的生命周期(SqlSessionFactoryBuilder,SqlSessionFactory, SqlSession和Mapper)