spring中为什么不直接用SQLsessionfactor?

而是用了SQLsessionfactorbean,为什么呢?... 而是用了SQLsessionfactorbean,为什么呢? 展开
 我来答
鞠婧祎老婆柠祎
2019-05-16 · TA获得超过727个赞
知道小有建树答主
回答量:2416
采纳率:67%
帮助的人:413万
展开全部
原因如下:
在mybatis中,SqlSessionFactory由SqlSessionFactoryBuilder创建.
在mybatis-spring中,是由SqlSessionFactoryBean创建的.
1.创建
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
<property name="dataSource" ref="dataSource" /></bean>

注意SqlSessionFactoryBean实现了Spring的FactoryBean接口,这意味着Spring最终创建的bean不是SqlSessionFactoryBean自身,而是SqlSessionFactoryBean的getObject()方法的返回结果。在这种情况下,Spring会在程序启动时为你创建一个SqlSessionFactory,并且将其以sqlSessionFactory 的名称存储.
等价的Java代码如下:
SqlSessionFactoryBean factoryBean = new SqlSessionFactoryBean();
SqlSessionFactory sessionFactory = factoryBean.getObject();

通常在mybatis-spring的使用中,不需要直接使用SqlSessionFactoryBean或者对应的SqlSessionFactory.
Session factory会被注入到MapperFactoryBean或者其他继承SqlSessionDaoSupport的DAO.
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式