使用API方式不需要provider.xml和consuer.xml
服务提供者
package com.dubboService;
import com.alibaba.dubbo.config.*;
public class AppApi {
public static void main(String[] args) {
ProviderService providerService = new ProviderServiceImpl();
//当前应用配置
ApplicationConfig applicationConfig = new ApplicationConfig();
applicationConfig.setName("provider");
applicationConfig.setOwner("luf");
//连接zk注册中心
RegistryConfig registryConfig = new RegistryConfig();
registryConfig.setAddress("zookeeper://zookeeper的地址:2181");
//服务提供者配置协议
ProtocolConfig protocolConfig = new ProtocolConfig();
protocolConfig.setName("dubbo");
protocolConfig.setPort(20880);
//服务提供者暴露服务位置
ServiceConfig<ProviderService> serviceServiceConfig = new ServiceConfig<ProviderService>();
serviceServiceConfig.setApplication(applicationConfig);
serviceServiceConfig.setRegistry(registryConfig);
serviceServiceConfig.setProtocol(protocolConfig);
serviceServiceConfig.setInterface(ProviderService.class);
serviceServiceConfig.setRef(providerService);
serviceServiceConfig.setVersion("1.0.0");
//暴露及注册服务
serviceServiceConfig.export();
}
}
消费者:
import com.alibaba.dubbo.config.*;
import com.dubboService.ProviderService;
public class AppApi {
public static void main(String[] args) {
//当前应用配置
ApplicationConfig applicationConfig = new ApplicationConfig();
applicationConfig.setName("consumer");
applicationConfig.setOwner("luf");
//连接zk注册中心
RegistryConfig registryConfig = new RegistryConfig();
registryConfig.setAddress("zookeeper://zkIP:2181");
//引用远程服务
ReferenceConfig<ProviderService> referenceConfig = new ReferenceConfig<ProviderService>();
referenceConfig.setApplication(applicationConfig);
referenceConfig.setRegistry(registryConfig);
referenceConfig.setInterface(ProviderService.class);
//使用ProvideService的方法
ProviderService providerService = referenceConfig.get();
providerService.sayHello("heihei");
}
}