Dubbo 源码解析(三) API配置(服务提供者)

目录

概述

在这个模块有AbstractServiceConfigProviderConfigServiceConfigBaseServiceConfigServiceBeanProtocolConfig

引用官网 API 配置代码

 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
import org.apache.dubbo.rpc.config.ApplicationConfig;
import org.apache.dubbo.rpc.config.RegistryConfig;
import org.apache.dubbo.rpc.config.ProviderConfig;
import org.apache.dubbo.rpc.config.ServiceConfig;
import com.xxx.XxxService;
import com.xxx.XxxServiceImpl;
 
// 服务实现
XxxService xxxService = new XxxServiceImpl();
 
// 当前应用配置
ApplicationConfig application = new ApplicationConfig();
application.setName("xxx");
 
// 连接注册中心配置
RegistryConfig registry = new RegistryConfig();
registry.setAddress("10.20.130.230:9090");
registry.setUsername("aaa");
registry.setPassword("bbb");
 
// 服务提供者协议配置
ProtocolConfig protocol = new ProtocolConfig();
protocol.setName("dubbo");
protocol.setPort(12345);
protocol.setThreads(200);
 
// 注意:ServiceConfig为重对象,内部封装了与注册中心的连接,以及开启服务端口
 
// 服务提供者暴露服务配置
ServiceConfig<XxxService> service = new ServiceConfig<XxxService>(); // 此实例很重,封装了与注册中心的连接,请自行缓存,否则可能造成内存和连接泄漏
service.setApplication(application);
service.setRegistry(registry); // 多个注册中心可以用setRegistries()
service.setProtocol(protocol); // 多个协议可以用setProtocols()
service.setInterface(XxxService.class);
service.setRef(xxxService);
service.setVersion("1.0.0");
 
// 暴露及注册服务
service.export();

以上是通过 API 来进行将服务者注册到注册中心,并提供服务的。

ProtocolConfig

org.apache.dubbo.config.ProtocolConfig,服务提供者协议配置。 具体属性解释参见《Dubbo指南 – dubbo:protocol》

ProviderConfig

org.apache.dubbo.config.ProviderConfig,服务提供配置 具体属性解释参见《Dubbo指南 – dubbo:provider》

ServiceConfig

org.apache.dubbo.config.ServiceConfig,服务配置 具体属性解释参见《Dubbo指南 – dubbo:service》

AbstractServiceConfig

org.apache.dubbo.config.AbstractServiceConfig,是抽象类,是 ServiceConfigProviderConfig 的父类 具体属性结束参见《Dubbo指南 – dubbo:service》《Dubbo指南 – dubbo:provider》

AbstractInterfaceConfig

org.apache.dubbo.config.AbstractInterfaceConfig,是抽象类,是AbstractServiceConfigAbstractReferenceConfig 的父类。部分属性看参考上面链接解释。

AbstractMethodConfig

org.apache.dubbo.config.AbstractMethodConfig,抽象方法配置 具体属性解释参见《Dubbo指南 – dubbo:method》

MethodConfig

org.apache.dubbo.config.MethodConfig,方法配置 具体属性解释参见《Dubbo指南 – dubbo:method》

ServiceBean

org.apache.dubbo.config.spring.ServiceBean,服务Bean,继承ServiceConfig并实现了 Spring 多个接口,用来将提供者注入到 IOC 容器中 具体属性解释参见《Dubbo指南 – dubbo:service》

参考链接

Dubbo官方指南文档