Skip to content

Commit d441376

Browse files
committed
优化配置类
1 parent 4145127 commit d441376

File tree

3 files changed

+59
-34
lines changed

3 files changed

+59
-34
lines changed

spring-cloud-gray-client-netflix/src/main/java/cn/springcloud/gray/client/netflix/resttemplate/configuration/GrayRestTemplateAutoConfiguration.java

Lines changed: 31 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
import org.springframework.beans.factory.annotation.Autowired;
88
import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
99
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
10+
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingClass;
1011
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
1112
import org.springframework.cloud.client.loadbalancer.LoadBalanced;
1213
import org.springframework.context.annotation.Bean;
@@ -19,36 +20,48 @@
1920
@ConditionalOnClass(value = RestTemplate.class)
2021
public class GrayRestTemplateAutoConfiguration {
2122

22-
@Autowired
23-
private GrayRequestProperties grayRequestProperties;
24-
@Autowired
25-
private RibbonConnectionPoint ribbonConnectionPoint;
2623

24+
@ConditionalOnMissingBean(RestTemplate.class)
25+
@ConditionalOnClass({LoadBalanced.class})
26+
public static class LoadBalancedRestTemplateConfiguration {
2727

28-
@Bean
29-
@LoadBalanced
30-
@ConditionalOnMissingBean
31-
public RestTemplate restTemplate() {
32-
RestTemplate restTemplate = new RestTemplate();
33-
// restTemplate.getInterceptors().add(grayClientHttpRequestIntercptor);
34-
return restTemplate;
28+
@Autowired
29+
private GrayRequestProperties grayRequestProperties;
30+
@Autowired
31+
private RibbonConnectionPoint ribbonConnectionPoint;
32+
33+
@Bean
34+
@LoadBalanced
35+
public RestTemplate restTemplate() {
36+
RestTemplate restTemplate = new RestTemplate();
37+
return restTemplate;
38+
}
39+
40+
@Bean
41+
public GrayClientHttpRequestIntercptor grayClientHttpRequestIntercptor(@LoadBalanced List<RestTemplate> restTemplates) {
42+
GrayClientHttpRequestIntercptor intercptor = new GrayClientHttpRequestIntercptor(
43+
grayRequestProperties, ribbonConnectionPoint);
44+
restTemplates.forEach(restTemplate -> restTemplate.getInterceptors().add(intercptor));
45+
return intercptor;
46+
}
3547
}
3648

3749

38-
@Bean
39-
public GrayClientHttpRequestIntercptor grayClientHttpRequestIntercptor(@LoadBalanced List<RestTemplate> restTemplates) {
40-
GrayClientHttpRequestIntercptor intercptor = new GrayClientHttpRequestIntercptor(
41-
grayRequestProperties, ribbonConnectionPoint);
42-
restTemplates.forEach(restTemplate -> restTemplate.getInterceptors().add(intercptor));
43-
return intercptor;
50+
@ConditionalOnMissingBean(RestTemplate.class)
51+
@ConditionalOnMissingClass({"org.springframework.cloud.client.loadbalancer.LoadBalanced"})
52+
public static class RestTemplateConfiguration {
53+
@Bean
54+
public RestTemplate restTemplate() {
55+
RestTemplate restTemplate = new RestTemplate();
56+
return restTemplate;
57+
}
4458
}
4559

4660

4761
@Configuration
4862
@ConditionalOnProperty(value = "gray.request.track.enabled", matchIfMissing = true)
4963
public static class GrayTrackRestTemplateConfiguration {
5064

51-
5265
@Bean
5366
public RestTemplateRequestInterceptor restTemplateRequestInterceptor() {
5467
return new RestTemplateRequestInterceptor();

spring-cloud-gray-client/src/main/java/cn/springcloud/gray/client/config/GrayClientAutoConfiguration.java

Lines changed: 26 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -34,19 +34,6 @@ public class GrayClientAutoConfiguration {
3434
private GrayClientProperties grayClientProperties;
3535

3636

37-
@Bean
38-
@ConditionalOnMissingBean
39-
@ConditionalOnProperty(value = "gray.client.serverUrl")
40-
public InformationClient informationClient(@Autowired(required = false) RestTemplate restTemplate) {
41-
InformationClient httpClient = new HttpInformationClient(grayClientProperties.getServerUrl(), restTemplate);
42-
if (grayClientProperties.isRetryable()) {
43-
return new RetryableInformationClient(Math.max(3, grayClientProperties.getRetryNumberOfRetries()), httpClient);
44-
} else {
45-
return httpClient;
46-
}
47-
}
48-
49-
5037
@Bean
5138
@ConditionalOnMissingBean
5239
public GrayManager grayManager(
@@ -75,4 +62,30 @@ public RequestLocalStorage requestLocalStorage() {
7562
}
7663

7764

65+
@Configuration
66+
public static class InformationClientConfiguration {
67+
68+
69+
@Bean("grayInformationRestTemplate")
70+
@ConditionalOnMissingBean(name = {"grayInformationRestTemplate"})
71+
public RestTemplate grayInformationRestTemplate() {
72+
return new RestTemplate();
73+
}
74+
75+
76+
@Bean
77+
@ConditionalOnMissingBean
78+
@ConditionalOnProperty(value = "gray.client.serverUrl")
79+
public InformationClient informationClient(
80+
@Autowired(required = false) RestTemplate grayInformationRestTemplate,
81+
GrayClientProperties grayClientProperties) {
82+
InformationClient httpClient = new HttpInformationClient(grayClientProperties.getServerUrl(), grayInformationRestTemplate);
83+
if (grayClientProperties.isRetryable()) {
84+
return new RetryableInformationClient(Math.max(3, grayClientProperties.getRetryNumberOfRetries()), httpClient);
85+
} else {
86+
return httpClient;
87+
}
88+
}
89+
}
90+
7891
}

spring-cloud-gray-client/src/main/java/cn/springcloud/gray/client/config/GrayTrackConfiguration.java

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,6 @@
1919
import org.springframework.boot.web.servlet.FilterRegistrationBean;
2020
import org.springframework.context.annotation.Bean;
2121
import org.springframework.context.annotation.Configuration;
22-
import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter;
2322

2423
import javax.servlet.http.HttpServletRequest;
2524
import java.util.List;
@@ -42,7 +41,7 @@ public GrayTrackHolder grayTrackHolder(
4241

4342
@ConditionalOnProperty(value = "gray.client.runenv", havingValue = "web", matchIfMissing = true)
4443
@Configuration
45-
public static class GrayClientWebConfiguration extends WebMvcConfigurerAdapter {
44+
public static class GrayClientWebConfiguration {
4645

4746
@Autowired
4847
private GrayTrackProperties grayTrackProperties;
@@ -61,7 +60,7 @@ public GrayTrackFilter grayTrackFilter(GrayTrackHolder grayTrackHolder) {
6160

6261

6362
@Bean
64-
public FilterRegistrationBean companyUrlFilterRegister(GrayTrackFilter filter) {
63+
public FilterRegistrationBean grayTrackFilter(GrayTrackFilter filter) {
6564
GrayTrackProperties.Web webProperties = grayTrackProperties.getWeb();
6665
FilterRegistrationBean registration = new FilterRegistrationBean();
6766
//注入过滤器

0 commit comments

Comments
 (0)