快速业务通道

如何使用Eclipse CNF的Saveable Protocol实现对View的保存 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-13
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 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号