SSM事务
来源:互联网 发布:现在的淘宝太坑了女孩 编辑:程序博客网 时间:2024/05/01 10:00
事务配置
1:首先在spring-mybatis的配置文件中添加 <!-- 开启事务注解驱动 --> <tx:annotation-driven /> 该标签的作用是开启事务的注解功能 2:开启事务管理 <!-- 开启事务管理 --> <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager"> <property name="dataSource" ref="dataSource" /> </bean> 3:在业务层使用@Transactional即可。 如果出现tx标签不识别,可加入如下头文件信息: <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p" xmlns:context="http://www.springframework.org/schema/context" xmlns:aop="http://www.springframework.org/schema/aop" xmlns:mvc="http://www.springframework.org/schema/mvc" xmlns:tx="http://www.springframework.org/schema/tx" xmlns:jdbc="http://www.springframework.org/schema/jdbc" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.1.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.1.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.0.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-4.0.xsd">
事务的属性说明
在使用事务时同时也需要配置一下事务的传播行为,事务的隔离性,事务的超时设置,以及事务在发生什么样的情况下进行事务的回滚。
1:传播行为:
(1):@Transactional(propagation=Propagation.REQUIRED) 如果有事务, 那么加入事务, 没有的话新建一个(默认情况下)(2):@Transactional(propagation=Propagation.NOT_SUPPORTED) 容器不为这个方法开启事务。(3):@Transactional(propagation=Propagation.REQUIRES_NEW) 不管是否存在事务,都创建一个新的事务,原来的挂起,新的执行完毕,继续执行老的事务(4):@Transactional(propagation=Propagation.MANDATORY) 必须在一个已有的事务中执行,否则抛出异常(5):@Transactional(propagation=Propagation.NEVER) 必须在一个没有的事务中执行,否则抛出异常(与Propagation.MANDATORY相反)(6):@Transactional(propagation=Propagation.SUPPORTS) 如果其他bean调用这个方法,在其他bean中声明事务,那就用事务.如果其他bean没有声明事务,那就不用事务
2:隔离性
(1):@Transactional(isolation= Isolation.READ_UNCOMMITTED)读取未提交数据(会出现脏读, 不可重复读) 基本不使用(2):@Transactional(isolation = Isolation.READ_COMMITTED)读取已提交数据(会出现不可重复读和幻读)(3):@Transactional(isolation = Isolation.REPEATABLE_READ)可重复读(会出现幻读)(4):@Transactional(isolation = Isolation.SERIALIZABLE)串行化
3:超时设置
@Transactional(timeout=30)//默认是30秒
4:什么异常会回滚
spring默认是当遇到runtimeException的异常或其子类的异常会进行回滚。当遇到不受检查的(unchecked)时就需要使用: 例如://指定回滚,遇到异常Exception时回滚,@Transactional(rollbackFor=Exception.class)。来手动添加异常让其那个不受检查的异常也可以进行回滚。//指定不回滚。但是当遇到运行期异常例外(thrownew RuntimeException("注释");)会回滚@Transactional(noRollbackFor=Exception.class)
注意
1:@Transactional 只能被应用到public方法上,对于其它非public的方法,如果标记了@Transactional也不会报错,但方法没有事务功能。 2:Spring团队的建议是你在具体的类(或类的方法)上使用事务的注解,当让也可以在接口中使用,但是如果一旦使用在接口上就需要配置接口上使用事务的代理,另外也因为接口上的事务是不能被继承的。这将会导致事务出现错误。所以建议还是把事务使用在类或者类的具体的方法上。
阅读全文
0 0
- SSM事务
- ssm框架事务配置详解
- ssm事务配置不起作用问题
- SSM-如何验证事务是否生效
- 分布式事务JTA实现之:SSM+ATOMIKOS
- 分布式事务JTA实现之:SSM+JOTM
- 【问题解决】SSM-@Transactional注解事务无效探讨
- SSM框架下事务配置注意事项
- ssm事务aop实现(自用)
- SSM的事务的配置和使用
- ssm框架下配置声明事务正确就是不起作用
- ssm框架下正常添加事务的演示
- ssm整合之七 事务以及404页面处理
- 声明式事务的应用(以ssm项目为例)
- Idea java ssm maven 项目 spring事务无法使用
- SSH与SSM学习之Spring19——Spring事务之事务基础
- SSH与SSM学习之Spring22——Spring事务之xml配置方式管理事务
- SSH与SSM学习之Spring23——Spring事务之注解配置方式管理事务
- JSON和String对象的转化、在js中的传递
- android如何获取证书签名?
- 字符串查找游戏
- oracle数据库的几个常用的SQL 语句
- 代码必过
- SSM事务
- 【尺取法】hdu 6119 小小粉丝度度熊
- Tomcat8启动闪退问题
- web socket通讯 一知半解~~
- mysql(六)存储过程
- 5-1 最大子列和问题
- linux信号量---互斥与同步
- 图片加载失败之后的处理(引申一下img的complete和onload方法)
- @RequestMapping