为了账号安全,请及时绑定邮箱和手机立即绑定
  • 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
    查看全部
    0 采集 收起 来源:课程总结

    2017-08-08

  • 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)
    查看全部
    0 采集 收起 来源:课程总结

    2018-03-22

  • 事务的特性:原子性,隔离性,一致性,持久性
    查看全部
  • 使用XML配置声明式事务(原始方式)
    查看全部
  • 声明式事务管理第一种配置方式:prop格式,key代表方法,实际开发中可能就是key="save*",key="update*"
    查看全部
  • 声明式事务管理是用aop实现的事物管理 transactionProxyFactoryBean是为某一个类产生代理对象的
    查看全部
  • 需要引入的jar包:
    查看全部
  • applicationContext.xml中引入外部文件、连接池的配置、bean的配置
    查看全部
  • 在业务层人为地制造一个异常:
    查看全部
  • 测试类的编写:(未加事务管理)
    查看全部
  • 业务层代码:set方式注入
    查看全部
  • Dao层代码:继承
    查看全部
  • 三个主要高层接口 首先会根据TransactionDefinition事务定义的信息(比如定义了什么样的隔离级别,定义什么样的传播行为),由PlatformTransactionManager对事务进行管理,进行事务管理的过程中,事务会产生一些相应的状态,这些状态在TransactionStatus中
    查看全部
    0 采集 收起 来源:接口介绍

    2017-08-06

  • 持久性
    查看全部
    0 采集 收起 来源:事务回顾

    2017-08-06

  • 隔离性
    查看全部
    0 采集 收起 来源:事务回顾

    2017-08-06

举报

0/150
提交
取消
课程须知
学习本课程前需要熟悉Spring的基础知识,掌握IOC和AOP的基本概念。小伙伴们可参考《Spring入门》课程
老师告诉你能学到什么?
1、理解Spring事务管理的基本概念 2、掌握Spring事务管理的应用场景 3、掌握声明式事务管理和编程式事务管理的实现方式

微信扫码,参与3人拼团

意见反馈 帮助中心 APP下载
官方微信
友情提示:

您好,此课程属于迁移课程,您已购买该课程,无需重复购买,感谢您对慕课网的支持!