基于AOP的事务管理
1 2 3 4 5 6 7 8 9 10 11 12 | /* *作者:呆萌老师 *☑csdn认证讲师 *☑51cto高级讲师 *☑腾讯课堂认证讲师 *☑网易云课堂认证讲师 *☑华为开发者学堂认证讲师 *☑爱奇艺千人名师计划成员 *在这里给大家分享技术、知识和生活 *各种干货,记得关注哦! *vx:it_daimeng */ |
基于aop的事务管理
1.修改配置文件 ,加入以下配置
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | <!-- 事务管理器 --> <bean id= "txManager" class = "org.springframework.jdbc.datasource.DataSourceTransactionManager" > <property name= "dataSource" ref= "dataSource" /> </bean> <tx:advice id= "txAdvice" transaction-manager= "txManager" > <tx:attributes> <!-- 为连接点指定事务属性 --> <tx:method name= "transfer" isolation= "DEFAULT" propagation= "REQUIRED" rollback- for = "MyException" /> </tx:attributes> </tx:advice> <aop:config> <!-- 切入点配置 --> <aop:pointcut expression= "execution(* *..service.*.*(..))" id= "point" /> <aop:advisor advice-ref= "txAdvice" pointcut-ref= "point" /> </aop:config> |
2.service层的事务注解去掉
3.测试
1 2 3 4 5 6 7 8 9 10 11 12 13 | @Test public void fun() { ClassPathXmlApplicationContext classPathXmlApplicationContext= new ClassPathXmlApplicationContext( "/ApplicationContext.xml" ); ICardInfoService cardInfoService= classPathXmlApplicationContext.getBean( "cardInfoService" ,ICardInfoService. class ); try { cardInfoService.transfer( 1 , 2 , 250.0 ); } catch (MyException e) { e.printStackTrace(); } } |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· winform 绘制太阳,地球,月球 运作规律
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 上周热点回顾(3.3-3.9)