-
8、Spring事物不回滚 1)默认spring事务只在发生未被捕获的 runtimeexcetpion时才回滚。 spring aop 异常捕获原理:被拦截的方法需显式抛出异常,并不能经任何处理,这样aop代理才能捕获到方法的异常,才能进行回滚,默认情况下aop只捕获runtimeexception的异常,但可以通过配置来捕获特定的异常并回滚 解决方案: 方案1.例如service层处理事务,那么service中的方法中不使用try catch做异常捕获,或者在catch语句中最后增加throw new RuntimeException()语句 方案2.在service层方法的catch语句中增加:TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();语句,手动回滚,这样上层就无需去处理异常(现在项目的做法) 2)数据库不支持InnoDB 解决方案: 1)修改mysql存储引擎方式 更改方式1: 在my.cnf,在[mysqld]最后添加为上default-storage-engine=InnoDB,重启数据库服务,数据库默认的引擎修改为InnoDB。 更改方式2: 在建表的时候指定或者建完表修改 create table tableName( id int primary key, name varchar(50) )type=InnoDB; 建完表之后修改也可以 alter table tableName ENGINE=InnoDB; #mysql5.0以后用这种方式 alter table tableName type = InnoDB; #mysql5.0之前用这种方式 修改完之后查看 show create table tableName; #这个信息可能比较多注意查看ENGINE这个关键字。 2)来源: http://blog.csdn.net/my_god_sky/article/details/51840451查看全部
-
9、总结 事务管理器有了连接池才能获得链接进行事务管理) 1* 编程式事务管理 - 通过TrasactionTemplate手动编写代码进行事务管理(很少使用) - 1.在AccountService中使用TransactionTemplate - 2.TransactionTemplate依赖DataSourceTransactionManager - 3.DataSourceTransactionManager依赖DataSource构造 2* 声明式事务管理(通过AOP实现的) - 基于TransactionProxyFactoryBean的方式(很少使用) . 需要为每个进行事务管理的类,配置一个TransactionProxyFactoryBean进行增强 注入:目标,事务管理器,事务属性:1.PROPAGATION :事务的传播行为 2.ISOLATION:事务的隔离级别3.readOnly:只读 4.-Exception :发生那些异常回滚事务 5.+Exception :发生那些异常事务不回滚 - 基于AspectJ的xml方式(经常使用) . 一旦配置好,类上不需要添加任何东西 1.配置事务的通知<tx> 2.配置切面,切点<aop> - 基于注解(经常使用) . 配置简单,需要在业务层类上添加一个@Transactionl的注解 1.开启事务<tx:annotation-driven transaction-Manager="" /> 2.service类@Transactional(name=value)查看全部
-
事务的特性:原子性,隔离性,一致性,持久性查看全部
-
使用XML配置声明式事务(原始方式)查看全部
-
声明式事务管理第一种配置方式:prop格式,key代表方法,实际开发中可能就是key="save*",key="update*"查看全部
-
声明式事务管理是用aop实现的事物管理 transactionProxyFactoryBean是为某一个类产生代理对象的查看全部
-
需要引入的jar包:查看全部
-
applicationContext.xml中引入外部文件、连接池的配置、bean的配置查看全部
-
在业务层人为地制造一个异常:查看全部
-
测试类的编写:(未加事务管理)查看全部
-
业务层代码:set方式注入查看全部
-
Dao层代码:继承查看全部
-
三个主要高层接口 首先会根据TransactionDefinition事务定义的信息(比如定义了什么样的隔离级别,定义什么样的传播行为),由PlatformTransactionManager对事务进行管理,进行事务管理的过程中,事务会产生一些相应的状态,这些状态在TransactionStatus中查看全部
-
持久性查看全部
-
隔离性查看全部
举报
0/150
提交
取消