本站首页    管理页面    写新日志    退出 [QQ:172832876] [MSN:lanlanq@hotmail.com]
麒麟在天欢迎您

.:日期

«September 2025»
123456
78910111213
14151617181920
21222324252627
282930

.:我的分类

.:最新日志

.:显示信息

blog名称:
日志总数:64
评论数量:34
留言数量:3
访问次数:342794
建立时间:2006年3月10日

.:留言板

.:链接

        公告

在属于自己的一片天空中,敲打着键盘,记录下自己感兴趣和认为自己因该回忆的碎片,可能是财富,也可能是不足,过后你会发现你的进步,这就足够。
[J2EE]学习spring 的事务处理机制,总结
luckystar 发表于 2006/3/16 14:41:06

采用的模式AOP模式-面向切面编程 两个核心-platformtransactionManager和transactionStatus PlatformTransactionManager直译过来就是平台相关事务,这里的平台指的是“事务源”,包括刚才我说的DataSource,jta等等。这些无一不是一个事务源。广义的说,凡是可以完成事务性操作的对象,都可以设计出相对应的PlatformTransactionManager,只要这个事务源支持commit,rollback和getTransaction语意.(网上采取) 一个例子从网上摘取 HibernateTransactionManager java代码:  protected void doCommit(DefaultTransactionStatus status) {                 HibernateTransactionObject txObject = (HibernateTransactionObject) status.getTransaction();                 if (status.isDebug()) {                         logger.debug("Committing Hibernate transaction on session [" +                                         txObject.getSessionHolder().getSession() + "]");                 }                 try {                         txObject.getSessionHolder().getTransaction().commit();                 } ...         }那么platformtarnsactionManager依据TransactionStatus 进行处理事务。查看这个接口类的源码你会发现isNewTransaction() ,isRollbackOnly(),setRollbackOnly() 。 PlatformTransactionManager就是根据isNewTransaction()和isRollbackOnly()决定是否要创建一个新的事务,是要进行commit还是要rollback.而setRollbackOnly()是改变事务当前的状态。 总结(网上摘取)spring的事务由PlatformTransactionManager管理,manager最后调用事务源的方法来实现一个事务过程。而manager通过TransactionStatus 来决定如何实现。 。。。。。。。未完待续。。。  

阅读全文(2510) | 回复(0) | 编辑 | 精华

 



发表评论:
昵称:
密码:
主页:
标题:
验证码:  (不区分大小写,请仔细填写,输错需重写评论内容!)
站点首页 | 联系我们 | 博客注册 | 博客登陆

Sponsored By W3CHINA
W3CHINA Blog 0.8 Processed in 0.047 second(s), page refreshed 144780334 times.
《全国人大常委会关于维护互联网安全的决定》  《计算机信息网络国际联网安全保护管理办法》
苏ICP备05006046号