DubboxAutoConfiguration.java
3.73 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
package com.uccc.dubbox;
import com.alibaba.dubbo.config.*;
import com.alibaba.dubbo.config.spring.AnnotationBean;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
import org.springframework.boot.context.properties.EnableConfigurationProperties;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.util.StringUtils;
/**
* Dubbox自动配置
*
* Created by caoliang on 2017/7/24.
*/
@Configuration
@EnableConfigurationProperties(DubboxProperties.class)
@ConditionalOnClass(RegistryConfig.class)
public class DubboxAutoConfiguration {
private static final Logger logger = LoggerFactory.getLogger(DubboxAutoConfiguration.class);
@Autowired
private DubboxProperties dubboxProperties;
@Bean
public static AnnotationBean annotationBean(@Value("${dubbox.annotation.package:#{null}}") String packageName) {
AnnotationBean annotationBean = new AnnotationBean();
if (!StringUtils.isEmpty(packageName)) {
annotationBean.setPackage(packageName);
logger.info("DubboxAutoConfiguration.annotationBean ---> " + packageName);
} else {
logger.error("请设置'dubbox.annotation.package'值,扫描包路径!");
}
return annotationBean;
}
@Bean
public ServiceConfig serviceConfig() {
logger.info("DubboxAutoConfiguration.serviceConfig ---> " + dubboxProperties.getService());
return dubboxProperties.getService();
}
@Bean
public ReferenceConfig referenceConfig() {
logger.info("DubboxAutoConfiguration.referenceConfig ---> " + dubboxProperties.getReference());
return dubboxProperties.getReference();
}
@Bean
public ProtocolConfig protocolConfig() {
logger.info("DubboxAutoConfiguration.protocolConfig ---> " + dubboxProperties.getProtocol());
return dubboxProperties.getProtocol();
}
@Bean
public ApplicationConfig applicationConfig() {
logger.info("DubboxAutoConfiguration.applicationConfig ---> " + dubboxProperties.getApplication());
return dubboxProperties.getApplication();
}
@Bean
public ModuleConfig moduleConfig(ApplicationConfig applicationConfig) {
ModuleConfig moduleConfig = dubboxProperties.getModule();
if (null == moduleConfig.getName()) {
moduleConfig.setName(applicationConfig.getName());
}
logger.info("DubboxAutoConfiguration.moduleConfig ---> " + dubboxProperties.getModule());
return moduleConfig;
}
@Bean
public RegistryConfig registry() {
logger.info("DubboxAutoConfiguration.registry ---> " + dubboxProperties.getRegistry());
return dubboxProperties.getRegistry();
}
@Bean
public ProviderConfig providerConfig(ApplicationConfig applicationConfig,
RegistryConfig registryConfig,
ProtocolConfig protocolConfig) {
ProviderConfig providerConfig = dubboxProperties.getProvider();
providerConfig.setApplication(applicationConfig);
providerConfig.setRegistry(registryConfig);
providerConfig.setProtocol(protocolConfig);
logger.info("DubboxAutoConfiguration.providerConfig ---> " + providerConfig);
return providerConfig;
}
@Bean
public MethodConfig methodConfig() {
logger.info("DubboxAutoConfiguration.methodConfig ---> " + dubboxProperties.getMethod());
return dubboxProperties.getMethod();
}
}