java110
2022-02-19 cffade3c8735c183ba212a6fab76754a56751919
优化 aop
4个文件已修改
77 ■■■■ 已修改文件
java110-core/pom.xml 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
java110-core/src/main/java/com/java110/core/aop/Java110FeignClientAop.java 48 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
java110-core/src/main/java/com/java110/core/aop/Java110TraceConfigurer.java 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pom.xml 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
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>
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);
        }
    }
}
java110-core/src/main/java/com/java110/core/aop/Java110TraceConfigurer.java
@@ -1,11 +1,16 @@
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 {
@@ -21,4 +26,17 @@
        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();
    }
}
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>