美文网首页
spring事务增强,事务回滚如何判断?希望在前端上有个提示。

spring事务增强,事务回滚如何判断?希望在前端上有个提示。

作者: 楚行知 | 来源:发表于2019-07-02 23:47 被阅读0次

    1 主要处理思路

    1.1 思路1

    事物回滚,一般抛异常,可以自己手写一个异常,根据异常判断。事物还是按照 spring 的之前的逻辑。只是,手工抛特定的异常。这样你就可以捕获这个异常给前台用户。

    1.2 思路2

    方法捕获异常抛出即可,记得方法定义必须抛出异常,否则框架捕获不到,声明式事物不起作用。

    1.3 总结

    我认为上述思路在实现上是统一的。下面给出一个用伪代码描述的例子。

    MyException:
    public classMyException extends RuntimeException { 
          public MyException(){           
          }
    }
    
    Action中:
    @Autowired
    private XServicexService;
    public String AddXmethod(){
          try {
                        xService.addX (x); //将x存入数据库
                 } catch (MyException e) {
                        System.out.println("service层出异常了....");
                        //其它处理,例:加上需要在前端显示的提示信息。
          }    
    }
    xService中:
    @Service
    @Transactional(propagation=org.springframework.transaction.annotation.Propagation.REQUIRED)
    public class XService{
    @Autowired
    private XDao xDao;
    public void addX (X x)throws MyException {
                  xDao.addX(x);
                  //人为的创建出一个异常,测试回滚在action中可以被判断。
                  try {
                         int a =10/0; 
                  } catch (Exceptione) {
    
                        //手工抛出,作用有两个,
                        //1、使用spring事务增强,对事务回滚。
                        //2、action中可以捕获该异常,并处理,例:在前端显示提示信息。
                        throw newMyException();
                  }
    }
    }
    

    例子结果说明:
    1、事务增强可以通过SpringAOP进行事务增强。
    2、事务发生回滚时,Action可以“判断”事务发生了回滚,并处理。

    2 参考文献

    http://www.jb51.net/article/32246.htm (Spring事务管理只对出现运行期异常进行回滚改变默认方式)
    http://www.cnblogs.com/0201zcr/p/5962578.html(spring 事务回滚)
    http://blog.csdn.net/gaowenming/article/details/5214737 (spring AOP的异常拦截)
    http://www.cnblogs.com/zhuawang/p/5954819.html (关于Spring事务回滚的问题)
    https://www.oschina.net/question/697871_2182978 (spring的事务insert操作怎么判断是否执行成功了还是回滚了)
    济南java技术交流群群主隐士的思路与百度用户mahl8007的思路。

    相关文章

      网友评论

          本文标题:spring事务增强,事务回滚如何判断?希望在前端上有个提示。

          本文链接:https://www.haomeiwen.com/subject/utnppftx.html