大佬把Spring框架总结的「无比详细」,看完还说不懂别学了( 五 )


 
spring中事务的分类:spring中事务可以分为编程式事务控制和声明式事务控制 。

编程式事务控制
自己手动控制事务,就叫做编程式事务控制 。
Jdbc代码:
Conn.setAutoCommit(false); // 设置手动控制事务
Hibernate代码:
Session.beginTransaction(); // 开启一个事务
【细粒度的事务控制: 可以对指定的方法、指定的方法的某几行添加事务控制】
(比较灵活,但开发起来比较繁琐: 每次都要开启、提交、回滚.)
 
声明式事务控制
Spring提供了对事务的管理, 这个就叫声明式事务管理 。
Spring提供了对事务控制的实现 。用户如果想用Spring的声明式事务管理,只需要在配置文件中配置即可; 不想使用时直接移除配置 。这个实现了对事务控制的最大程度的解耦 。
Spring声明式事务管理,核心实现就是基于Aop 。
【粗粒度的事务控制: 只能给整个方法应用事务,不可以对方法的某几行应用事务 。】
(因为aop拦截的是方法 。)
 
Spring声明式事务管理器类:
Jdbc技术:DataSourceTransactionManager
Hibernate技术:HibernateTransactionManager
有一点需要注意的:若为编程式事务控制,则开启事务后一定要手动释放(提交或回滚),否则长期占用内存,有可能报事务异常
 
spring封装了事务管理的代码(打开,提交,回滚事务)
事务操作对象,因为在不同平台,操作事务的代码各不相同.spring提供了一个接口
————— PlatformTransactionManager 接口
————— 在不同平台,实现不同的接口即可
————— 注意:在spring中玩事务管理.最为核心的对象就是TransactionManager对象
大佬把Spring框架总结的「无比详细」,看完还说不懂别学了

文章插图
 
 
spring管理事务的属性介绍
(1)事务的隔离级别
(2)是否只读
(3)事务的传播行为
配置事务的核心管理器,它封装了所有事务,依赖于连接池(DataSourceTransactionManager)
大佬把Spring框架总结的「无比详细」,看完还说不懂别学了

文章插图
 
 
xml中配置通知
大佬把Spring框架总结的「无比详细」,看完还说不懂别学了

文章插图
 
配置将通知织入目标
大佬把Spring框架总结的「无比详细」,看完还说不懂别学了

文章插图
 
10、spring中aop管理事务 注解使用步骤
大佬把Spring框架总结的「无比详细」,看完还说不懂别学了

文章插图
 
在需要管理的方法或者类中声明配置事务管理
@Transactional(isolation=Isolation.REPEATABLE_READ,readOnly=false,propagation=Propagation.REQUIRED)
大佬把Spring框架总结的「无比详细」,看完还说不懂别学了

文章插图
 
 

【大佬把Spring框架总结的「无比详细」,看完还说不懂别学了】


推荐阅读