组入brave配置开关

parent 53944fe0
...@@ -18,6 +18,7 @@ import okhttp3.OkHttpClient; ...@@ -18,6 +18,7 @@ import okhttp3.OkHttpClient;
import org.apache.http.impl.client.HttpClientBuilder; import org.apache.http.impl.client.HttpClientBuilder;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.autoconfigure.AutoConfigureOrder; import org.springframework.boot.autoconfigure.AutoConfigureOrder;
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
import org.springframework.boot.context.properties.EnableConfigurationProperties; import org.springframework.boot.context.properties.EnableConfigurationProperties;
import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Configuration;
...@@ -46,10 +47,53 @@ import java.util.List; ...@@ -46,10 +47,53 @@ import java.util.List;
@Slf4j @Slf4j
@Configuration @Configuration
@AutoConfigureOrder @AutoConfigureOrder
@EnableWebMvc public class BraveAutoConfiguration {
@EnableConfigurationProperties( BraveProperties.class ) @Configuration
@Import( { TracingClientHttpRequestInterceptor.class, SpanCustomizingAsyncHandlerInterceptor.class } ) @EnableWebMvc
public class BraveAutoConfiguration extends WebMvcConfigurerAdapter { @EnableConfigurationProperties( BraveProperties.class )
@ConditionalOnProperty( prefix = "tech.brave", name = "enabled", havingValue = "false")
public static class BraveUntEnabled {
/**
* 提供HttpClientBuilderBean
*
* @return
*/
@Bean( name = "techHttpClientBuilder" )
public HttpClientBuilder httpClientBuilder() {
log.info("注册HttpClientBuilder");
return TracingHttpClientBuilder.create();
}
/**
* 提供OkHttpClientBean
*
* @return
*/
@Bean( name = "techOkHttpClientBuilder" )
public OkHttpClient.Builder okHttpClientBuilder() {
log.info("注册OkHttpClient.Builder");
return new OkHttpClient.Builder();
}
/**
* 提供RestTemplate
*
* @return
*/
@Bean( name = "techRestTemplate" )
public RestTemplate restTemplate() {
log.info("添加restTemplate拦截器");
return new RestTemplate();
}
}
@Configuration
@EnableWebMvc
@EnableConfigurationProperties( BraveProperties.class )
@ConditionalOnProperty( prefix = "tech.brave", name = "enabled", havingValue = "true" )
@Import( {TracingClientHttpRequestInterceptor.class, SpanCustomizingAsyncHandlerInterceptor.class} )
public static class BraveEnabled extends WebMvcConfigurerAdapter {
@Autowired @Autowired
private BraveProperties braveProperties; private BraveProperties braveProperties;
...@@ -87,6 +131,7 @@ public class BraveAutoConfiguration extends WebMvcConfigurerAdapter { ...@@ -87,6 +131,7 @@ public class BraveAutoConfiguration extends WebMvcConfigurerAdapter {
/** /**
* 提供RabbitTemplateBuilder,业务系统需要使用该Builder生成RabbitTemplate * 提供RabbitTemplateBuilder,业务系统需要使用该Builder生成RabbitTemplate
*
* @param tracing * @param tracing
* @return * @return
*/ */
...@@ -97,23 +142,25 @@ public class BraveAutoConfiguration extends WebMvcConfigurerAdapter { ...@@ -97,23 +142,25 @@ public class BraveAutoConfiguration extends WebMvcConfigurerAdapter {
/** /**
* 提供HttpClientBuilderBean * 提供HttpClientBuilderBean
*
* @param tracing * @param tracing
* @return * @return
*/ */
@Bean( name = "techHttpClientBuilder" ) @Bean( name = "techHttpClientBuilder" )
public HttpClientBuilder httpClientBuilder(Tracing tracing) { public HttpClientBuilder httpClientBuilder(Tracing tracing) {
log.info("注册HttpClientBuilder"); log.info("注册braveHttpClientBuilder");
return TracingHttpClientBuilder.create(tracing); return TracingHttpClientBuilder.create(tracing);
} }
/** /**
* 提供OkHttpClientBean * 提供OkHttpClientBean
*
* @param httpTracing * @param httpTracing
* @return * @return
*/ */
@Bean( name = "techOkHttpClientBuilder" ) @Bean( name = "techOkHttpClientBuilder" )
public OkHttpClient.Builder okHttpClientBuilder(HttpTracing httpTracing) { public OkHttpClient.Builder okHttpClientBuilder(HttpTracing httpTracing) {
log.info("注册OkHttpClient.Builder"); log.info("注册braveOkHttpClient.Builder");
return new OkHttpClient.Builder() return new OkHttpClient.Builder()
.dispatcher(new Dispatcher(httpTracing.tracing().currentTraceContext().executorService(new Dispatcher().executorService()))) .dispatcher(new Dispatcher(httpTracing.tracing().currentTraceContext().executorService(new Dispatcher().executorService())))
.addNetworkInterceptor(TracingInterceptor.create(httpTracing)); .addNetworkInterceptor(TracingInterceptor.create(httpTracing));
...@@ -126,16 +173,18 @@ public class BraveAutoConfiguration extends WebMvcConfigurerAdapter { ...@@ -126,16 +173,18 @@ public class BraveAutoConfiguration extends WebMvcConfigurerAdapter {
*/ */
@Bean( name = "techDelegatingTracingFilter" ) @Bean( name = "techDelegatingTracingFilter" )
public Filter delegatingTracingFilter() { public Filter delegatingTracingFilter() {
log.info("注册DelegatingTracingFilter");
return new DelegatingTracingFilter(); return new DelegatingTracingFilter();
} }
/** /**
* 提供RestTemplate * 提供RestTemplate
*
* @return * @return
*/ */
@Bean( name = "techRestTemplate") @Bean( name = "techRestTemplate" )
public RestTemplate restTemplate() { public RestTemplate restTemplate() {
log.info("添加restTemplate拦截器"); log.info("添加braveRestTemplate拦截器");
RestTemplate restTemplate = new RestTemplate(); RestTemplate restTemplate = new RestTemplate();
List<ClientHttpRequestInterceptor> interceptors = List<ClientHttpRequestInterceptor> interceptors =
new ArrayList<>(restTemplate.getInterceptors()); new ArrayList<>(restTemplate.getInterceptors());
...@@ -146,9 +195,10 @@ public class BraveAutoConfiguration extends WebMvcConfigurerAdapter { ...@@ -146,9 +195,10 @@ public class BraveAutoConfiguration extends WebMvcConfigurerAdapter {
@Override @Override
public void addInterceptors(InterceptorRegistry registry) { public void addInterceptors(InterceptorRegistry registry) {
log.info("添加webmvc拦截器"); log.info("添加braveWebmvc拦截器");
registry.addInterceptor(spanCustomizingAsyncHandlerInterceptor); registry.addInterceptor(spanCustomizingAsyncHandlerInterceptor);
} }
}
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment