Bladeren bron

优化事务清理

java110 5 jaren geleden
bovenliggende
commit
3725e89671

+ 3 - 0
java110-core/src/main/java/com/java110/core/aop/Java110TransactionalAop.java

@@ -114,6 +114,9 @@ public class Java110TransactionalAop {
             Java110TransactionalFactory.fallbackOId();
             //return new BusinessDto(BusinessDto.CODE_ERROR, "内部异常" + e.getLocalizedMessage());
             throw e;
+        }finally {
+            //清理事务信息
+            Java110TransactionalFactory.clearOId();
         }
     }
 }

+ 21 - 1
java110-core/src/main/java/com/java110/core/factory/Java110TransactionalFactory.java

@@ -8,7 +8,11 @@ import com.java110.utils.util.StringUtil;
 import org.apache.commons.lang.StringUtils;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
-import org.springframework.http.*;
+import org.springframework.http.HttpEntity;
+import org.springframework.http.HttpHeaders;
+import org.springframework.http.HttpMethod;
+import org.springframework.http.HttpStatus;
+import org.springframework.http.ResponseEntity;
 import org.springframework.web.client.HttpStatusCodeException;
 import org.springframework.web.client.RestTemplate;
 
@@ -96,6 +100,21 @@ public class Java110TransactionalFactory {
         return orderDto.getoId();
     }
 
+    /**
+     * 清理事务
+     */
+    public static void clearOId() {
+        //清理事务
+        if(!StringUtil.isEmpty(getOId())) {
+            remove(O_ID);
+        }
+        //清理角色
+        if(!StringUtil.isEmpty(getServiceRole())) {
+            remove(SERVICE_ROLE);
+        }
+
+    }
+
     /**
      * 获取事务ID
      *
@@ -153,6 +172,7 @@ public class Java110TransactionalFactory {
      * 处理失败,回退事务
      */
     public static void fallbackOId() {
+
         String oId = getOId();
         if (StringUtil.isEmpty(oId) || ROLE_OBSERVER.equals(getServiceRole())) {
             //当前没有开启事务无需回退