基于注解实现dubbo简例

服务端

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;
    }
  }
}
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值