zoukankan      html  css  js  c++  java
  • @Transactional事务锁

    一、介绍

        @Transactional是建立在AOP基础上的,它的本质是对方法的前后进行拦截,在目标方法开始前创建一个事务,在目标方法运行结束时根据运行的情况进行提交或者回滚操作。使用@Transactional不会对代码造成污染,使用起来简单便捷。

    二、相关的配置

    • readOnly:该属性用于设置当前事务是否为只读事务,设置为true表示只读,false则表示可读写,默认值为false。例如:@Transactional(readOnly=true);
    • rollbackFor: 该属性用于设置需要进行回滚的异常类数组,当方法中抛出指定异常数组中的异常时,则进行事务回滚。例如:指定单一异常类:@Transactional(rollbackFor=RuntimeException.class)指定多个异常类:@Transactional(rollbackFor={RuntimeException.class, Exception.class});
    • rollbackForClassName: 该属性用于设置需要进行回滚的异常类名称数组,当方法中抛出指定异常名称数组中的异常时,则进行事务回滚。例如:指定单一异常类名称@Transactional(rollbackForClassName=”RuntimeException”)指定多个异常类名称:@Transactional(rollbackForClassName={“RuntimeException”,”Exception”})。
    • noRollbackFor:该属性用于设置不需要进行回滚的异常类数组,当方法中抛出指定异常数组中的异常时,不进行事务回滚。例如:指定单一异常类:@Transactional(noRollbackFor=RuntimeException.class)指定多个异常类:@Transactional(noRollbackFor={RuntimeException.class, Exception.class})。
    • noRollbackForClassName:该属性用于设置不需要进行回滚的异常类名称数组,当方法中抛出指定异常名称数组中的异常时,不进行事务回滚。例如:指定单一异常类名称:@Transactional(noRollbackForClassName=”RuntimeException”)指定多个异常类名称:@Transactional(noRollbackForClassName={“RuntimeException”,”Exception”})。
    • propagation : 该属性用于设置事务的传播行为。例如:@Transactional(propagation=Propagation.NOT_SUPPORTED,readOnly=true)。
    • isolation:该属性用于设置底层数据库的事务隔离级别,事务隔离级别用于处理多事务并发的情况,通常使用数据库的默认隔离级别即可,基本不需要进行设置。
    • timeout:该属性用于设置事务的超时秒数,默认值为-1表示永不超时。

    三、注意事项

    • 事务@Transactional的使用必须要放在类的公共public方法中,如果将事务放在protected、private方法上时,他不会报错,但事务无效。
    • 一个未加@Transactional的父方法A在调用加了@Transactional的子方法B时,若在A中抛出异常,那么事务不会回滚;反之,一个加了@Transactional的父方法A在调用未加@Transactional的子方法B时,若在A中抛出异常,事务仍然生效。
    • 事务的回滚必须有异常抛出,如果加了@Transactional的方法在捕获了异常却自己处理了该异常,那么事务不会进行回滚
     
        
     
  • 相关阅读:
    Android启动流程
    Android异步加载图像小结
    ViewPager的setOnPageChangeListener方法详解
    极光推送的集成
    物体旋转的问题gl.glTranslatef,gl.glRotatef如何饶物体的中心轴旋转
    实现生成星星,让星星自转和绕原点公转的简单demo。
    混色,半透明的设定,以及我们视角即屏幕处在-1层,-1层的物体是看不见的
    三维世界里的坐标和变换,逆方向旋转移动三维世界的方式来实现3D漫游
    OpenGL中glMatrixMode的使用,以及glPushMatrix和glPopMatrix的原理
    OpenGL纹理上下颠倒翻转的三种解决办法(转)
  • 原文地址:https://www.cnblogs.com/sxhjoker/p/11416177.html
Copyright © 2011-2022 走看看