spring事务,我的理解

 
Spring事务:spring 将事务管理进行抽象,具有一致的事务管理,有点如下:
一 spring 事务管理带给我们什么好处
1 为不同的事务API提供一致的编程模型:我的理解是,无论是jdbc,hibernate,jta,均可以按照一定的模型—步骤流程去进行事务处理。
2 提供了比传统事务API更简单,更易用的编程式事务管理API:我的理解,看过之后还真没感觉到编程式事务的使用简单。
3 支持声明式事务管理:我的理解是,根据定义某些AOP,可以对执行数据库操作的函数实现事务关注点的横切。需要进行配置完成。比较不错。
 
 
 
 二 事务管理的实现方式。
 1 编程方式实现事务管理
   A 使用PlatformTransactionManager
     这种方式过程如下,根据配置文件得到一个PlatformTransactionManager对象的实现类引用。然后得到一个代表事务的TransactionStatus对象,后面的和使用jdbc事务就差不多了。
   B 得到一个PlatformTransactionManager对象后,生成TransactionTemplate的对象实例,再运行它的execute方法即可,不需要显式开启事务,但需要显式会滚。
 
 2 声明式事务管理
   A  使用TransactionProxyFactory为目标bean生成事务代理:
      过程:定义一个类型为TransactionProxyFactory的bean,依赖注入TransactionManager,用来调用事务;依赖注入要管理的目标对象,以及要加入事务的方法以及事务的级别等参数。
这样在编译文件的时候,aop就会将其织入相应bean的方法代码中,以完成事务管理。
     这样的缺点是需要为每一个目标bean指定一个TransactionProxyFactory,很麻烦的。
     可以通过定义父模版的方式定义事物属性相同的模版
   B 使用 beanName自动创建代理
      使多个bean使用相同的事务代理
      使用流程:定义一个事务拦截器,类别为:TransactionInterceptor, 依赖注入TransactionManager,用来调用事务;指定transactionAttribute,以标志那些方法需要进行事务注入,以及事务的级别。
     定义一个BeanNameAutoProxyCreator ,指定使用的TransactionInterceptor;指定那些bean需要进行事务注入(方法已经在TransactionInterceptor中指定)
这样就会根据其定义出切点,然后进行横切,完成织入。
 C 基于Java5的注释式事务代理配置:
这是通过将事务配置直接写到bean的文件里来实现的(java5的注释功能)
 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值