TransactionSynchronizationManager理解
来源:互联网 发布:大数据薪资待遇 编辑:程序博客网 时间:2024/06/05 07:52
public abstract class TransactionSynchronizati
{
}
再看看方法SessionHolder的理解
先看一段代码:
protected Session getSession() {
return SessionFactoryUtils.getNewSession(getSessionFactory(),getEntityInterceptor());
return SessionFactoryUtils.getSession(getSessionFactory(),false);
return SessionFactoryUtils.getSession(
看来在 SessionFactoryUtils 里面,接着在SessionFactoryUtils.getSession 中找:
这个方法太长了,太复杂了,从简,发现了非常关键的一点:
SessionHolder sessionHolder = (SessionHolder)TransactionSynchronizati
假如 sessionHolder不等于空,说明,在事务中有这样一个还没有 commit 的 session,那么就返回这个 session ,假如等于空,新建一个 session,并且在事务里加入这个 session。这段代码的意思大概是这样,太繁杂了,只能猜,也肯定是如此。
再看 getHibernateTemplate() 方法来自继承 HibernateDaoSupport,看了电子书《 spring-reference 》的第九章“ Dao 支持”, Dao的支持类可以有好多,如: JdbcDaoSupport , HibernateDaoSupport ,JdoDaoSupport 等等。
既然前面一开始就是从 jdbc 的 spring事务控制引起的,那么看到了同样的HibernateDaoSupport---JdbcDaoSupport ,那么 JdbcDaoSupport 也应该有getJdbcTemplate() 这个方法,并且返回 JdbcTemplate 这个类。
果然如此。
于是剖析 JdbcTemplate 是不是和 HibernateTemplate一样。果然一样。
注意到:
Connection con =DataSourceUtils.getConnection(getDataSource());
Connection 是从 DataSourceUtils.getConnection() 来的,继续跟踪DataSourceUtils.getConnection() 。
找到:
ConnectionHolder conHolder = (ConnectionHolder)TransactionSynchronizati
和 Hibernate 中的一模一样,因为没有了 session 的封装,条理在jdbc 中更加清晰了。
- TransactionSynchronizationManager理解
- OpenSessionInViewFilter——>TransactionSynchronizationManager
- OpenSessionInViewFilter——>TransactionSynchronizationManager
- 关闭TransactionSynchronizationManager下日志打印
- 理解
- 理解
- 理解
- 理解
- 理解
- 理解
- 理解
- 理解
- 理解
- 理解
- 理解
- CopyOnWriteArrayList理解与理解
- rowid 简单理解理解
- 理解XML
- 虚函数相关问题分析
- Spark Web界面
- POJ--1122--FDNY to the Rescue!【最短路】
- 各种操作系统上的操作系统日志位置
- Unable to instantiate Action, MenuAction, defined for 'QueryMenuAll' in namespace '/'MenuAction
- TransactionSynchronizationManager理解
- 基于MFC对话框的qq游戏连连看外挂
- 出现如下这个错误
- 武汉华嵌-嵌入式培训专家笔试题目
- 标题 随便写阿什利的客服经理开始的减肥死了快捷方式来得快
- 利用VMProtect sdk和ASProtect sdk加密delphi程序
- CodeForces 451B 模拟
- SDUT--枚举(删数问题)
- 查找最小的k个元素(数组)