欢迎来到天天文库
浏览记录
ID:10002245
大小:35.30 KB
页数:0页
时间:2018-05-20
《spring事务管理理解分析》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、spring自建事务管理模块。而且这个事务管理是一个抽象设计,可以应用到很多场合,包括普通的DataSource,jta,jms和hibernate上。要正确使用spring的事务,首先需要了解spring在事务设计上的一些概念统观spring事务,围绕着两个核心PlatformTransactionManager和TransactionStatusPlatformTransactionManager直译过来就是平台相关事务,这里的平台指的是“事务源”,包括刚才我说的DataSource,jta等等。这些无一不是一
2、个事务源。广义的说,凡是可以完成事务性操作的对象,都可以设计出相对应的PlatformTransactionManager,只要这个事务源支持commit,rollback和getTransaction语意。查看spring代码,可以发现这些manager实现事务,就是调用事务源的事务操作方法比如HibernateTransactionManagerJava代码 1.protected void doCommit(DefaultTransactionStatus status); { 2. Hibe
3、rnateTransactionObject txObject = (HibernateTransactionObject); status.getTransaction();; 3. if (status.isDebug();); { 4. logger.debug("Committing Hibernate transaction on session [" + 5. txObject.getSessionHolder();.get
4、Session(); + "]");; 6. } 7. try { 8. txObject.getSessionHolder();.getTransaction();.commit();; 9. } 10.... 11. 12. } protectedvoiddoCommit(DefaultTransactionStatusstatus);{HibernateTransactionObjecttxObject=(Hibernate
5、TransactionObject);status.getTransaction();;if(status.isDebug(););{logger.debug("CommittingHibernatetransactiononsession["+txObject.getSessionHolder();.getSession();+"]");;}try{txObject.getSessionHolder();.getTransaction();.commit();;}...}jdbc的DataSourceTransa
6、ctionManagerJava代码 1.protected void doCommit(DefaultTransactionStatus status); { 2. DataSourceTransactionObject txObject = (DataSourceTransactionObject); status.getTransaction();; 3. Connection con = txObject.getConnectionHolder();.getConnectio
7、n();; 4. if (status.isDebug();); { 5. logger.debug("Committing JDBC transaction on connection [" + con + "]");; 6. } 7. try { 8. con.commit();; 9. } 10. ... 11. } protectedvoiddoCommit(Defaul
8、tTransactionStatusstatus);{DataSourceTransactionObjecttxObject=(DataSourceTransactionObject);status.getTransaction();;Connectioncon=txObject.getConnectionHolder();.getConnection();
此文档下载收益归作者所有