From cffade3c8735c183ba212a6fab76754a56751919 Mon Sep 17 00:00:00 2001
From: java110 <928255095@qq.com>
Date: 星期六, 19 二月 2022 18:05:32 +0800
Subject: [PATCH] 优化 aop

---
 java110-core/src/main/java/com/java110/core/aop/Java110FeignClientAop.java |   48 ++++++++++++++++++++++++++++++++++--------------
 1 files changed, 34 insertions(+), 14 deletions(-)

diff --git a/java110-core/src/main/java/com/java110/core/aop/Java110FeignClientAop.java b/java110-core/src/main/java/com/java110/core/aop/Java110FeignClientAop.java
index ea4d2c9..6636aee 100644
--- a/java110-core/src/main/java/com/java110/core/aop/Java110FeignClientAop.java
+++ b/java110-core/src/main/java/com/java110/core/aop/Java110FeignClientAop.java
@@ -3,26 +3,46 @@
 import com.java110.core.factory.Java110TraceFactory;
 import com.java110.core.log.LoggerFactory;
 import com.java110.dto.trace.TraceAnnotationsDto;
-import org.aspectj.lang.ProceedingJoinPoint;
-import org.aspectj.lang.annotation.Around;
-import org.aspectj.lang.annotation.Aspect;
+import okhttp3.Interceptor;
+import okhttp3.Request;
+import okhttp3.Response;
 import org.slf4j.Logger;
-import org.springframework.stereotype.Component;
 
-@Aspect
-@Component
-public class Java110FeignClientAop {
+import java.io.IOException;
+
+
+public class Java110FeignClientAop implements Interceptor {
     private static Logger logger = LoggerFactory.getLogger(Java110FeignClientAop.class);
 
-    @Around("execution (* feign.Client.*(..)) && !within(is(FinalType))")
-    public Object feignClientWasCalled(final ProceedingJoinPoint pjp) throws Throwable {
+    //    @Around("execution (* feign.Client.*(..)) && !within(is(FinalType))")
+//    public Object feignClientWasCalled(final ProceedingJoinPoint pjp) throws Throwable {
+//
+//        logger.debug("feign 杩涘叆 Java110FeignClientAop>> feignClientWasCalled");
+//
+//        Java110TraceFactory.putAnnotations(TraceAnnotationsDto.VALUE_SERVER_SEND);
+//        Object clientHttpResponse = pjp.proceed();
+//        Java110TraceFactory.putAnnotations(TraceAnnotationsDto.VALUE_SERVER_RECEIVE);
+//        return clientHttpResponse;
+//    }
+    @Override
+    public Response intercept(Chain chain) throws IOException {
+        Request request = chain.request();
 
-        logger.debug("feign 杩涘叆 Java110FeignClientAop>> feignClientWasCalled");
-
+        //before , request.body()
+        logger.debug("feign 杩涘叆 Java110FeignClientAop>> intercept");
         Java110TraceFactory.putAnnotations(TraceAnnotationsDto.VALUE_SERVER_SEND);
-        Object clientHttpResponse = pjp.proceed();
-        Java110TraceFactory.putAnnotations(TraceAnnotationsDto.VALUE_SERVER_RECEIVE);
-        return clientHttpResponse;
+        try {
+            Response response = chain.proceed(request);
+            //after
+            return response;
+        } catch (Exception e) {
+            //log error
+            throw e;
+        } finally {
+            //clean up
+            Java110TraceFactory.putAnnotations(TraceAnnotationsDto.VALUE_SERVER_RECEIVE);
+        }
     }
 
+
 }

--
Gitblit v1.8.0