Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
C
commons
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
3
Merge Requests
3
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
DevOps
commons
Commits
f87b6c77
Commit
f87b6c77
authored
May 04, 2018
by
技术部-高工-张恒
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
增加对httpclient、okhttpclient、rabbittemplate的依赖判断
parent
e9b87212
Changes
2
Show whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
136 additions
and
94 deletions
+136
-94
pom.xml
brave-spring-boot-starter/pom.xml
+3
-0
BraveAutoConfiguration.java
...roup/tech/brave/configuration/BraveAutoConfiguration.java
+133
-94
No files found.
brave-spring-boot-starter/pom.xml
View file @
f87b6c77
...
...
@@ -46,17 +46,20 @@
<dependency>
<groupId>
org.apache.httpcomponents
</groupId>
<artifactId>
httpclient
</artifactId>
<optional>
true
</optional>
</dependency>
<dependency>
<groupId>
com.squareup.okhttp3
</groupId>
<artifactId>
okhttp
</artifactId>
<version>
3.10.0
</version>
<optional>
true
</optional>
</dependency>
<dependency>
<groupId>
org.springframework.amqp
</groupId>
<artifactId>
spring-rabbit
</artifactId>
<optional>
true
</optional>
</dependency>
<dependency>
...
...
brave-spring-boot-starter/src/main/java/cn/quantgroup/tech/brave/configuration/BraveAutoConfiguration.java
View file @
f87b6c77
...
...
@@ -18,9 +18,12 @@ import cn.quantgroup.tech.brave.service.TechRabbitBuilderTrace;
import
lombok.extern.slf4j.Slf4j
;
import
okhttp3.Dispatcher
;
import
okhttp3.OkHttpClient
;
import
org.apache.http.client.HttpClient
;
import
org.apache.http.impl.client.HttpClientBuilder
;
import
org.springframework.amqp.rabbit.core.RabbitTemplate
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.boot.autoconfigure.AutoConfigureOrder
;
import
org.springframework.boot.autoconfigure.condition.ConditionalOnClass
;
import
org.springframework.boot.autoconfigure.condition.ConditionalOnProperty
;
import
org.springframework.boot.context.properties.EnableConfigurationProperties
;
import
org.springframework.context.annotation.Bean
;
...
...
@@ -54,7 +57,7 @@ import java.util.List;
@Slf4j
@Configuration
@AutoConfigureOrder
@Conditional
(
BraveAutoConfiguration
.
BraveSet
.
class
)
@Conditional
(
BraveAutoConfiguration
.
BraveSet
.
class
)
public
class
BraveAutoConfiguration
{
static
final
class
BraveSet
implements
Condition
{
@Override
...
...
@@ -71,6 +74,23 @@ public class BraveAutoConfiguration {
@EnableConfigurationProperties
(
BraveProperties
.
class
)
@ConditionalOnProperty
(
prefix
=
"tech.brave"
,
name
=
"enabled"
,
havingValue
=
"false"
)
public
static
class
BraveUntEnabled
{
@Configuration
@ConditionalOnClass
(
RabbitTemplate
.
class
)
public
static
class
RabbitTemplateEnable
{
/**
* 提供RabbitTemplateBuilder,业务系统需要使用该Builder生成RabbitTemplate
*
* @return
*/
@Bean
(
name
=
"techRabbitTemplateBuilder"
)
public
ITechRabbitBuilder
rabbitTemplateBuilder
()
{
return
new
TechRabbitBuilderNoTrace
();
}
}
@Configuration
@ConditionalOnClass
(
HttpClient
.
class
)
public
static
class
HttpClientEnable
{
/**
* 提供HttpClientBuilderBean
*
...
...
@@ -81,6 +101,11 @@ public class BraveAutoConfiguration {
log
.
info
(
"注册HttpClientBuilder"
);
return
TracingHttpClientBuilder
.
create
();
}
}
@Configuration
@ConditionalOnClass
(
OkHttpClient
.
class
)
public
static
class
OkHttpClientEnable
{
/**
* 提供OkHttpClientBean
...
...
@@ -92,7 +117,11 @@ public class BraveAutoConfiguration {
log
.
info
(
"注册OkHttpClient.Builder"
);
return
new
OkHttpClient
.
Builder
();
}
}
@Configuration
@ConditionalOnClass
(
RestTemplate
.
class
)
public
static
class
RestTemplateEnable
{
/**
* 提供RestTemplate
*
...
...
@@ -103,23 +132,15 @@ public class BraveAutoConfiguration {
log
.
info
(
"添加restTemplate拦截器"
);
return
new
RestTemplate
();
}
/**
* 提供RabbitTemplateBuilder,业务系统需要使用该Builder生成RabbitTemplate
*
* @return
*/
@Bean
(
name
=
"techRabbitTemplateBuilder"
)
public
ITechRabbitBuilder
rabbitTemplateBuilder
()
{
return
new
TechRabbitBuilderNoTrace
();
}
}
@Configuration
@EnableWebMvc
@EnableConfigurationProperties
(
{
BraveProperties
.
class
,
ServiceProperties
.
class
}
)
@ConditionalOnProperty
(
prefix
=
"tech.brave"
,
name
=
"enabled"
,
havingValue
=
"true"
)
@Import
(
{
TracingClientHttpRequestInterceptor
.
class
,
SpanCustomizingAsyncHandlerInterceptor
.
class
}
)
@Import
(
SpanCustomizingAsyncHandlerInterceptor
.
class
)
public
static
class
BraveEnabled
extends
WebMvcConfigurerAdapter
{
@Autowired
private
BraveProperties
braveProperties
;
...
...
@@ -127,9 +148,6 @@ public class BraveAutoConfiguration {
@Autowired
private
ServiceProperties
serviceProperties
;
@Autowired
private
TracingClientHttpRequestInterceptor
clientInterceptor
;
@Autowired
private
SpanCustomizingAsyncHandlerInterceptor
spanCustomizingAsyncHandlerInterceptor
;
...
...
@@ -159,7 +177,26 @@ public class BraveAutoConfiguration {
return
HttpTracing
.
create
(
tracing
);
}
/**
* 创建一个bean
*
* @return
*/
@Bean
(
name
=
"techDelegatingTracingFilter"
)
public
Filter
delegatingTracingFilter
()
{
log
.
info
(
"注册DelegatingTracingFilter"
);
return
new
DelegatingTracingFilter
();
}
@Override
public
void
addInterceptors
(
InterceptorRegistry
registry
)
{
log
.
info
(
"添加braveWebmvc拦截器"
);
registry
.
addInterceptor
(
spanCustomizingAsyncHandlerInterceptor
);
}
@Configuration
@ConditionalOnClass
(
RabbitTemplate
.
class
)
public
static
class
RabbitTemplateEnable
{
/**
* 提供RabbitTemplateBuilder,业务系统需要使用该Builder生成RabbitTemplate
*
...
...
@@ -170,7 +207,11 @@ public class BraveAutoConfiguration {
public
ITechRabbitBuilder
rabbitTemplateBuilder
(
Tracing
tracing
)
{
return
new
TechRabbitBuilderTrace
(
tracing
);
}
}
@Configuration
@ConditionalOnClass
(
HttpClient
.
class
)
public
static
class
HttpClientEnable
{
/**
* 提供HttpClientBuilderBean
*
...
...
@@ -182,7 +223,11 @@ public class BraveAutoConfiguration {
log
.
info
(
"注册braveHttpClientBuilder"
);
return
TracingHttpClientBuilder
.
create
(
tracing
);
}
}
@Configuration
@ConditionalOnClass
(
OkHttpClient
.
class
)
public
static
class
OkHttpClientEnable
{
/**
* 提供OkHttpClientBean
*
...
...
@@ -196,18 +241,16 @@ public class BraveAutoConfiguration {
.
dispatcher
(
new
Dispatcher
(
httpTracing
.
tracing
().
currentTraceContext
().
executorService
(
new
Dispatcher
().
executorService
())))
.
addNetworkInterceptor
(
TracingInterceptor
.
create
(
httpTracing
));
}
/**
* 创建一个bean
*
* @return
*/
@Bean
(
name
=
"techDelegatingTracingFilter"
)
public
Filter
delegatingTracingFilter
()
{
log
.
info
(
"注册DelegatingTracingFilter"
);
return
new
DelegatingTracingFilter
();
}
@Configuration
@ConditionalOnClass
(
RestTemplate
.
class
)
@Import
(
TracingClientHttpRequestInterceptor
.
class
)
public
static
class
RestTemplateEnable
{
@Autowired
private
TracingClientHttpRequestInterceptor
clientInterceptor
;
/**
* 提供RestTemplate
*
...
...
@@ -223,12 +266,8 @@ public class BraveAutoConfiguration {
restTemplate
.
setInterceptors
(
interceptors
);
return
restTemplate
;
}
@Override
public
void
addInterceptors
(
InterceptorRegistry
registry
)
{
log
.
info
(
"添加braveWebmvc拦截器"
);
registry
.
addInterceptor
(
spanCustomizingAsyncHandlerInterceptor
);
}
}
}
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment