java110 лет назад: 4
Родитель
Сommit
cffade3c87

+ 5 - 0
java110-core/pom.xml

@@ -85,5 +85,10 @@
             <artifactId>java110-utils</artifactId>
         </dependency>
 
+        <dependency>
+            <groupId>com.squareup.okhttp3</groupId>
+            <artifactId>okhttp</artifactId>
+        </dependency>
+
     </dependencies>
 </project>

+ 34 - 14
java110-core/src/main/java/com/java110/core/aop/Java110FeignClientAop.java

@@ -3,26 +3,46 @@ package com.java110.core.aop;
 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 {
-    private static Logger logger = LoggerFactory.getLogger(Java110FeignClientAop.class);
+import java.io.IOException;
+
 
-    @Around("execution (* feign.Client.*(..)) && !within(is(FinalType))")
-    public Object feignClientWasCalled(final ProceedingJoinPoint pjp) throws Throwable {
+public class Java110FeignClientAop implements Interceptor {
+    private static Logger logger = LoggerFactory.getLogger(Java110FeignClientAop.class);
 
-        logger.debug("feign 进入 Java110FeignClientAop>> feignClientWasCalled");
+    //    @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();
 
+        //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);
+        }
     }
 
+
 }

+ 18 - 0
java110-core/src/main/java/com/java110/core/aop/Java110TraceConfigurer.java

@@ -1,12 +1,17 @@
 package com.java110.core.aop;
 
+import okhttp3.ConnectionPool;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnBean;
+import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.Configuration;
 import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
 import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
 import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
 import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter;
 
+import java.util.concurrent.TimeUnit;
+
 @Configuration
 public class Java110TraceConfigurer extends WebMvcConfigurerAdapter {
     @Autowired
@@ -21,4 +26,17 @@ public class Java110TraceConfigurer extends WebMvcConfigurerAdapter {
         registry.addInterceptor(java110TraceHandlerInterceptor).addPathPatterns("/**");
         super.addInterceptors(registry);
     }
+
+    @Bean
+    @ConditionalOnBean(Java110FeignClientAop.class)
+    public okhttp3.OkHttpClient okHttpClient(@Autowired
+                                                         Java110FeignClientAop okHttpLoggingInterceptor){
+        okhttp3.OkHttpClient.Builder ClientBuilder = new okhttp3.OkHttpClient.Builder()
+                .readTimeout(30, TimeUnit.SECONDS) //读取超时
+                .connectTimeout(10, TimeUnit.SECONDS) //连接超时
+                .writeTimeout(60, TimeUnit.SECONDS) //写入超时
+                .connectionPool(new ConnectionPool(10 /*maxIdleConnections*/, 3, TimeUnit.MINUTES))
+                .addInterceptor(okHttpLoggingInterceptor);
+        return ClientBuilder.build();
+    }
 }

+ 6 - 0
pom.xml

@@ -213,6 +213,12 @@
                 <version>${log4j.version}</version>
             </dependency>
             <!-- https://mvnrepository.com/artifact/org.slf4j/log4j-over-slf4j -->
+
+            <dependency>
+                <groupId>com.squareup.okhttp3</groupId>
+                <artifactId>okhttp</artifactId>
+                <version>3.6.0</version>
+            </dependency>
             <dependency>
                 <groupId>org.slf4j</groupId>
                 <artifactId>log4j-over-slf4j</artifactId>