spring 怎么管理ibatis的session,spring事务管理后 会关闭session么?在源码中怎么查看 10

 我来答
散步者遐想
2016-09-06 · 超过13用户采纳过TA的回答
知道答主
回答量:57
采纳率:0%
帮助的人:21.4万
展开全部

首先要明白spring为什么要管理session?session是在什么时候使用的?以及为什么要管理?

1、spring其实管理的是sessionFactory对象,很明显这个对象是用来获取session的。在spring上下文全局中应该只有一个,这个不用担心因为默认情况下spring都是管理bean都是单例的。

2、session是线程不安全的,因此我们使用的是时候应当使用局部变量的方式使用。也就是方法体内使用
3、先看图

圈起来这段就是提交事务的,也就是说session控制着事务,那么完全可以交给spring的AOP来管理事务。
在来看个图,专门配置事务的

可能你觉得这个比较发麻,这么简单的一个方法我手动控制就好了!但是实际应用当中可能你这个业务方法还调用其他的业务方法,那时候你这个事务要怎么控制,是全部写在一个try-catch里面还是怎么处理?

追问
spring 源码中怎么查看事务完成后  session关闭?
追答

org.mybatis.spring.SqlSessionUtils看下这个源码,还有这个代码不是spring自己的,是mybatis-spring整合的一个jar包里面的。

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式