zoukankan      html  css  js  c++  java
  • 事务框架之声明事务(自动开启,自动提交,自动回滚)Spring AOP 封装

    利用Spring AOP 封装事务类,自己的在方法前begin 事务,完成后提交事务,有异常回滚事务

    比起之前的编程式事务,AOP将事务的开启与提交写在了环绕通知里面,回滚写在异常通知里面,找到指定的方法(切入点),代码如下:

    代码在这个基础上重构:

     https://www.cnblogs.com/pickKnow/p/11135310.html

    @Component
    @Aspect
    @Scope("prototype")
    public class AopTransaction { @Autowired private TransactionUtils transactionUtils; @Around("execution (* com.hella.thread.aoptransaction.service.UserService.addUser(..) )") public void around(ProceedingJoinPoint proceedingJoinPoint) throws Throwable { //不要try catch 不然回滚不了,一直占用资源 System.out.println("开启事务"); TransactionStatus transactionStatus = transactionUtils.begin(); proceedingJoinPoint.proceed(); transactionUtils.commit(transactionStatus); System.out.println("提交事务"); } @AfterThrowing("execution (* com.hella.thread.aoptransaction.service.UserService.addUser(..) )") public void afterThrowing() { System.out.println("事务开始回滚"); TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); } }

    那service 层方法里面就不需要再写事务的开启,提交,回滚了。

    @Service
    public class UserServiceImpl implements UserService {
    
        @Autowired
        private UserDao userDao;
        @Override
        public void addUser() {
            // 添加到数据库
            System.out.println("开始添加");
            userDao.add(1, "tom", "12");
        }
    }
  • 相关阅读:
    甲方提供核心jar包,添加到本地maven仓库
    Flexigrid详解
    在idea中使用CheckStyle来规范代码
    对List集合中的对象进行按某个属性排序
    Layui数据表格总结篇
    jQuery入门看这一篇就够了
    JAVA常量类的实现方式
    HTML5和CSS3提高
    CSS高级技巧总结
    CSS入门总结
  • 原文地址:https://www.cnblogs.com/pickKnow/p/11138118.html
Copyright © 2011-2022 走看看