查看: 1968|回复: 0

Spring配置事务在DAO层和业务逻辑层

[复制链接]

该用户从未签到

发表于 2008-5-28 13:53:41 | 显示全部楼层 |阅读模式
分享到:
Spring通过AOP实现声明式事务管理。通常通过TransactionProxyFactoryBean设置Spring事务代理。我们需要一个目标对象包装在事务代理中。这个目标对象一般是一个普通Java对象的bean。当我们定义TransactionProxyFactoryBean时,必须提供一个相关的 PlatformTransactionManager的引用和事务属性。 事务属性含有上面描述的事务定义。
PlatformTransactionManager
HibernateTransactionManager需要一个SessionFactory的引用
JtaTransactionManager
一.把事务放置在了DAO层:


   
       
   

层接口实现-->

   
       
   

对DAO层的事务代理-->

   
       
   
   
       
   
   
       
        PROPAGATION_REQUIRED
        PROPAGATION_REQUIRED
       
        PROPAGATION_REQUIRED,readOnly
       
       
   

业务层接口实现,把DAO注入到Service里面-->

   
       
   

对Service层的代理-->

   
        com.vstsoft.querycompany.service.CompanyManage
   
   
       
   

配置struts访问,把service层注入到action里面-->

   
       
   

二.把事务放置在了Service层:


层接口实现-->

   
       
   

对DAO层的代理-->

   
        com.vstsoft.querycompany.dao.CompanyDAO
   
   
       
   

业务层接口实现,把DAO注入到Service里面-->

   
       
   

代理业务层的事务管理-->

   
       
   
   
       
              PROPAGATION_REQUIRED
              PROPAGATION_REQUIRED,readOnly
       
   
   
       
   

配置struts访问,把service层注入到action里面-->

   
       
   

service层的接口实现CompanyManageImpl里面有个setData方法:按顺序执行数据查询,数据删除,数据插入数据库行为,如果哪一步出异常(运行时异常),事务回滚,只有所有行为都没成功,事务提交。
回复

使用道具 举报

您需要登录后才可以回帖 注册/登录

本版积分规则

关闭

站长推荐上一条 /4 下一条



手机版|小黑屋|与非网

GMT+8, 2024-11-16 00:32 , Processed in 0.111783 second(s), 15 queries , MemCache On.

ICP经营许可证 苏B2-20140176  苏ICP备14012660号-2   苏州灵动帧格网络科技有限公司 版权所有.

苏公网安备 32059002001037号

Powered by Discuz! X3.4

Copyright © 2001-2024, Tencent Cloud.