如何使用Eclipse CNF的Saveable Protocol实现对View的保存 - 编程入门网
onManager.java:752) - Initiating transaction commit
[Thread-2](AbstractPlatformTransactionManager.java:365) -
Creating new transaction with name [user.multithread.ScoreService.addScore]:
PROPAGATION_REQUIRED,ISOLATION_DEFAULT ②
[main] (DataSourceTransactionManager.java:265) - Committing JDBC transaction
on Connection [org.apache.commons.dbcp.PoolableConnection@1353249] ③
[main] (DataSourceTransactionManager.java:323) - Releasing JDBC Connection
[org.apache.commons.dbcp.PoolableConnection@1353249] after transaction
[main] (DataSourceUtils.java:312) - Returning JDBC Connection to DataSource
[Thread-2] (DataSourceTransactionManager.java:205) - Acquired Connection
[org.apache.commons.dbcp.PoolableConnection@10dc656] for JDBC transaction
addScore...
[main] (JdbcTemplate.java:416) - Executing SQL statement
[DELETE FROM t_user WHERE user_name=''tom'']
[main] (DataSourceUtils.java:112) - Fetching JDBC Connection from DataSource
[Thread-2] (JdbcTemplate.java:785) - Executing prepared SQL update
[Thread-2] (JdbcTemplate.java:569) - Executing prepared SQL statement
[UPDATE t_user u SET u.score = u.score + ? WHERE user_name =?]
[main] (DataSourceUtils.java:312) - Returning JDBC Connection to DataSource
[Thread-2] (JdbcTemplate.java:794) - SQL update affected 0 rows
[Thread-2] (AbstractPlatformTransactionManager.java:752) - Initiating transaction commit
[Thread-2] (DataSourceTransactionManager.java:265) - Committing JDBC transaction
on Connection [org.apache.commons.dbcp.PoolableConnection@10dc656] ④
[Thread-2] (DataSourceTransactionManager.java:323) - Releasing JDBC Connection
[org.apache.commons.dbcp.PoolableConnection@10dc656] after transaction
Spring事务管理高级应用难点剖析,第1部分(13)时间:2012-04-26 IBM 陈雄华在 ① 处,在主线程(main)执行的 UserService#logon() 方法的事务启动,在 ③ 处, 其对应的事务提交,而在子线程(Thread-2)执行的 ScoreService#addScore() 方法的事务在 ② 处启动,在 ④ 处对应的事务提交。 所以,我们可以得出这样的结论:在 相同线程中进行相互嵌套调用的事务方法工作于相同 的事务中。如果这些相互嵌套调用的方法工作在不同的线程中,不同线程下的事务方法工作在 独立的事务中。 小结 Spring 声明式事务是 Spring 最核心,最常用的功能。由于 Spring 通过 IOC 和 AOP 的 功能非常透明地实现了声明式事务的功能,一般的开发者基本上无须了解 Spring 声明式事务 的内部细节,仅需要懂得如何配置就可以了。 但是在实际应用开发过程中,Spring 的这种透明的高阶封装在带来便利的同时,也给我们 带来了迷惑。就像通过流言传播的消息,最终听众已经不清楚事情的真相了,而这对于应用开 发来说是很危险的。本系列文章通过剖析实际应用中给开发者造成迷惑的各种难点,通过分析 Spring 事务管理的内部运作机制将真相还原出来。 在本文中,我们通过剖析了解到以下的真相: 在没有事务管理的情况下,DAO 照样可以顺利进行数据操作; 将应用分成 Web,Service 及 DAO 层只是一种参考的开发模式,并非是事务管理工作的前 提条件; |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |