spring中声明式事务管理控制介绍以及使用XML方式实现

来源:互联网 发布:js怎么判断日期相等 编辑:程序博客网 时间:2024/06/01 10:41

环境准备

用户访问—》Action  --Service---Dao

 

一个业务的成功: 调用的service是执行成功的,意味着service中调用的所有的dao是执行成功的。 事务应该在Service层统一控制。

 

1)没有应用事务的代码:

2)模拟:

service中调用2dao, 希望其中一个dao执行失败,整个操作要回滚。

 

开发步骤:

1. 后台环境准备

数据库、表/entity/dao/service

2. dao 的实现用JdbcTemplate

3. 对象创建都有Spring容器完成


事务控制概述

编程式事务控制

自己手动控制事务,就叫做编程式事务控制。

Jdbc代码:

Conn.setAutoCommite(false);  // 设置手动控制事务

Hibernate代码:

Session.beginTransaction();    // 开启一个事务

【细粒度的事务控制: 可以对指定的方法、指定的方法的某几行添加事务控制】

(比较灵活,但开发起来比较繁琐: 每次都要开启、提交、回滚.)

 

声明式事务控制

Spring提供了对事务的管理, 这个就叫声明式事务管理。

Spring提供了对事务控制的实现。用户如果想用Spring的声明式事务管理,只需要在配置文件中配置即可; 不想使用时直接移除配置。这个实现了对事务控制的最大程度的解耦。

Spring声明式事务管理,核心实现就是基于Aop。

【粗粒度的事务控制: 只能给整个方法应用事务,不可以对方法的某几行应用事务。】

(因为aop拦截的是方法。)

 

Spring声明式事务管理器类:

Jdbc技术:DataSourceTransactionManager

Hibernate技术:HibernateTransactionManager


XML方式实现

步骤:

1) 引入spring-aop相关的4jar文件

2) 引入aop名称空间  【XML配置方式需要引入】

3) 引入tx名称空间    【事务方式必须引入】



第一步:导入相关的jar包(事务要导入aop相关的jar包)



第二步:创建实体类Dept ,以及相关的dao层中的DeptDao service层中DeptService








第三步:配置bean.xml文件







第四步:测试类App



 

阅读全文
0 0
原创粉丝点击