zoukankan      html  css  js  c++  java
  • 在springBoot与quartz 整合中 @Transaction 失效

    问题1::springBoot在与quartz 整合时,使用@Transaction 注解时事务失效

    解决方案:创建一个类使用@component被spring管理 ,使用@Transaction标识主要方法,然后使用quartz 的方法中调用这个类中的方法

    问题2: 同一个类中,不加@Transaction注解的方法调用加@Transaction注解的方法  事务失效

    问题产生的原因: spring 在扫描bean的时候会扫描方法上是否包含@Transaction注解,如果包含,spring会为这个bean动态地生成一个子类(即代理类,proxy),代理类是继承原来那个bean的。此时,当这个有注解的方法被调用的时候,实际上是由代理类来调用的,代理类在调用时增加异步作用。然而,如果这个有注解的方法是被同一个类中的其他方法调用的,那么该方法的调用并没有通过代理类,而是直接通过原来的那个bean,所以就没有增加事务作用,我们看到的现象就是@Transaction注解无效。

    解决方案:将不需要事务管理的类抽离出来创建一个类,然后调用被事务管理的类方法

  • 相关阅读:
    获取配置文件
    windows下多tomcat部署
    tomcat是否有必要配置环境变量(摘)
    js删除map中元素
    HDU-3440 House Man
    HDU-1534 Schedule Problem
    POJ-1364/HDU 1531 King
    POJ-1275/HDU-1529 Cashier Employment
    POJ-1201/HDU-1384 Intervals
    HDU-5780 gcd
  • 原文地址:https://www.cnblogs.com/lijing1/p/11006274.html
Copyright © 2011-2022 走看看