服务端
1.基于注解标记服务
//使用servcie注解后,由dubbo将这个实现类提升为spring容器管理的bean,并且负责配置初始化和服务暴露
@Service
public class EchoServiceImpl implements EchoService{
public String echo(String msg){
return msg;
}
}
2.注解方式生成du bbo配置信息
public class AnnotationProvider{
public static void mian(String args[]) throws Exception{
AnnotationConfigApplicationContext context =
new AnnotationConfigApplicationContext(ProviderConfiguration.class);
context.start();
System.in.read();
}
@Configuration
@EnableDubbo(scanBasePackages="com.alibaba.dubbo.samples.echo")
static class ProviderConfiguration{
@Bean
public ProviderConfig providerConfig(){
return new ProviderCongig();
}
@Bean
public ApplicationConfig applicationConfig(){
ApplicationConfig applicationConfig =
new ApplicationConfig();
applicationConfig.setName("echo-annotation-provider");
return applicationConfig;
}
@Bean
public RegistryConfig registryConfig(){
RegistryConfig registryConfig = new RegistryConfig();
registryConfig.setProtocol("zookeeper");
registryConfig.setAddress("localhost");
registryConfig.setPort(2181);
return registryConfig;
}
@Bean
public ProtocolConfig protocolConfig(){
ProtocalConfig config = new ProtocolConfig();
config.setName("dubbo");
config.setPort(20880);
return config;
}
}
}
客户端
1.消费
@Component
public class EchoConsumer{
@Reference
private EchoService echoService;
public String echo(String name){
return echoService.echo(name);
}
}
2.配置类
public class AnnotationConsumer{
public static void main() throws Exception{
AnnotationConfigApplicationContext context =
new AnnotationConfigApplicationContext();
context.start();
EchoComsumer echoService = context.getBean(EchoComsumer.class);
System.out.println("result:"+echoService.echo("hello world!"));
}
@Configuration
@EnableDubbo(scanBasePackages="com.alibaba.dubbo.samples.echo")
@ComponentScan(value={
"com.alibaba.dubbo.samples.echo"})
static class ConsumerConfiguration(){
@Bean
public ApplicationConfig applicationConfig(){
ApplicationConfig config = new ApplicationConfig();
config.setName("echo-annotation-consumer");
return config;
}
@Bean
public ConsumerConfig consumerConfig(){
return new ConsumerConfig();
}
@Bean
public RegistryConfig registryConfig(){
RegistryConfig registryConfig = new RegistryConfig();
registryConfig.setProtocol("zookeeper");
registryConfig.setAddress("localhost");
registryConfig.serPort("2181");
return registryConfig;
}
}
}