Spring如何基于aop实现事务控制
作者:程序晓猿 时间:2021-07-21 11:26:06
spring的事务控制本质上是通过aop实现的。
在springboot中使用时,可以通过注解@Transactional进行类或者方法级别的事务控制,也可以自己通过spring提供的事务管理器手动控制事务
一、 @Transactional注解进行进行类或者方法级别的事务控制
不需要进行特别的设置,按照正常的配置整合spring和mybatis后,在需要进行事务控制的类上或者方法上加上
@Transactional注解,即可对其进行事务控制。
二、手动控制事务
当需要在一个方法的内部进行事务控制时,就需要利用spring提供的事务管理器来手动控制。在方法所在的类中注入事务管理器,然后在方法中需要的位置利用事务管理器进行控制:开启事务,提交事务,回滚事务
@Autowired
PlatformTransactionManager platformTransactionManager;
@Autowired
TransactionDefinition transactionDefinition;
public void testTransaction() {
//开启事务
TransactionStatus transactionStatus = platformTransactionManager.getTransaction(transactionDefinition);
try {
CategoryInfo categoryInfo1=new CategoryInfo();
categoryInfo1.setName("分类1");
categoryDataDao.add(categoryInfo1);
//模拟发生异常,事务回滚后应该数据库两条记录都没有
int i=1/0;
CategoryInfo categoryInfo2=new CategoryInfo();
categoryInfo2.setName("分类2");
categoryDataDao.add(categoryInfo2);
//提交事务
platformTransactionManager.commit(transactionStatus);
} catch (Exception e) {
logger.error("发生异常事务回滚");
platformTransactionManager.rollback(transactionStatus);
}
}
来源:https://www.cnblogs.com/chengxuxiaoyuan/p/12309786.html
标签:spring,aop,事务,控制
0
投稿
猜你喜欢
搭建一个基础的Resty项目框架
2021-06-08 11:12:06
DevExpress获取TreeList可视区域节点集合的实现方法
2023-09-18 15:42:05
深入Java Final
2022-06-22 09:38:14
Android Studio 3.1.3升级至3.6.1后旧项目的兼容操作方法
2022-03-27 10:15:41
Springboot日志开启SLF4J过程解析
2022-04-23 01:29:57
Java后端学习精华之TCP通信传输协议详解
2021-08-06 03:15:42
Springboot文件上传功能的实现
2021-09-20 12:48:47
WinForm 自动完成控件实例代码简析
2022-06-28 22:02:24
Java 集合的Contains和Remove方法
2022-06-17 05:29:10
设计模式在Spring框架中的应用汇总
2023-10-22 19:20:09
剑指Offer之Java算法习题精讲链表与二叉树专项训练
2022-01-12 19:19:01
Java Swing组件文件选择器JFileChooser简单用法示例
2021-09-23 21:00:34
Java读写Windows共享文件夹的方法实例
2022-10-02 02:25:45
mybatis注解与xml常用语句汇总
2022-05-17 18:39:47
Android OkHttp代理与路由的彻底理解
2023-03-17 01:21:51
android利用ContentResolver访问者获取手机短信信息
2022-02-02 15:02:37
mybatis水平分表实现动态表名的项目实例
2023-04-02 22:11:42
Android导航栏功能项的显示与屏蔽介绍
2022-09-27 06:38:55
Java实现一个顺序表的完整代码
2023-09-21 01:00:59
SSM使用mybatis分页插件pagehepler实现分页示例
2022-04-02 00:20:53