博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
SSH——浅谈spring中的事务(二)
阅读量:4263 次
发布时间:2019-05-26

本文共 2984 字,大约阅读时间需要 9 分钟。

      今天,我们接着来学习事务。上次我们说到了事务的概念,特性等,可是我们还不知道怎么用。今天我们就来说一下spring中的事务管理。

一、编程式

1、概念理解

      将事务管理代码嵌入到业务方法中来控制事务的提交和回滚,在编程式事务中,必须在每个业务操作中包含额外的事务管理代码。

2、具体实现

      编程式即采用注解的方式,需要注意的是,使用注解的方式需要在Spring的配置文件中加入一句话:,其作用是开启注解的方式。

  • 具体配置
classpath:config/hibernate.cfg.xml
com.entity
  • 具体实现类中的注解
package com.dao;import org.springframework.orm.hibernate3.HibernateTemplate;import org.springframework.transaction.annotation.Propagation;import org.springframework.transaction.annotation.Transactional;import com.entity.User;@Transactionalpublic class UserDaoImpl_BAK extends HibernateTemplate {
@Transactional(propagation=Propagation.REQUIRED,rollbackForClassName="Exception") public void addUser(User user) throws Exception { this.save(user); }@Transactional(propagation=Propagation.REQUIRED,rollbackForClassName="Exception") public void modifyUser(User user) { this.update(user); }@Transactional(propagation=Propagation.REQUIRED,rollbackForClassName="Exception") public void delUser(String username) { this.delete(this.load(User.class, username)); } @Transactional(readOnly=true) public void selectUser() { }}
  • PS:

      类头的@Transactional为默认事务配置,如方法没有自己的事务类型,则按默认事务,如有自己的配置,则按自己的配置。

二、声明式

1、概念理解

      大多数情况下比编程式事务管理更好用。它将事务管理代码从业务方法中分离出来,以声明的方式来实现事务管理。事务管理作为一种横切关注点,可以通过AOP方法模块化。Spring通过Spring AOP框架支持声明式事务管理。

2、具体实现

  • 公共配置
classpath:config/hibernate.cfg.xml
com.entity
方法一:使用tx标签方式
  • PS:

      方法一:使用tx标签方式expression=”execution(* com.dao..(..))”

其中第一个代表返回值,第二代表dao下子包,第三个*代表方法名,“(..)”代表方法参数。

第二种,使用代理方式
PROPAGATION_REQUIRED, -Exception
PROPAGATION_REQUIRED, -Exception
PROPAGATION_REQUIRED, -Exception
PROPAGATION_REQUIRED, readOnly

PS:

      将transactionProxy的abstract属性设置为”true”,然后将具体的Dao的parent属性设置为”transactionProxy”,可以精简代码。

第三种,使用拦截器
PROPAGATION_REQUIRED, -Exception
PROPAGATION_REQUIRED, -Exception
PROPAGATION_REQUIRED, -Exception
PROPAGATION_REQUIRED, readOnly
transactionInterceptor
*Dao

总结:

      通过这两次的学习,我们不仅了解了事务的一些基本知识,更明白了在实际中如何使用。但是对于事务更深层次的理解,我们还需要继续深入学习。总结是我们收获的必经之路,所以,多看多总结。

转载地址:http://uymei.baihongyu.com/

你可能感兴趣的文章
Java基础入门(二)
查看>>
Java基础入门(三)
查看>>
Java基础入门(四)
查看>>
Java基础入门(完结篇)
查看>>
Java进阶之面向对象(一)——继承
查看>>
Java进阶之自定义ArrayList&斗地主发牌案例
查看>>
JavaWeb之Ajax&json
查看>>
BUFG,IBUFG,BUFGP,IBUFGDS等含义以及使用
查看>>
逻辑思维测试题
查看>>
如何用Easy CHM制作CHM格式电子书(帮助文档)
查看>>
为什么学习python
查看>>
华为进不了美国,并不是贸易保护这么简单
查看>>
markdown文件的基本常用编写语法(图文并茂)
查看>>
java变量简介
查看>>
Shell十分钟入门
查看>>
nginx 配置 upstream backup 报错
查看>>
Linux执行 wget命令:提示command not found的两种解决方法
查看>>
openssl实现md5加rsa签名
查看>>
史上最全的前端学习路线图,干货满满
查看>>
来点不一样的:解耦 HTML、CSS 和 JS之间的那些事
查看>>