dubbo消费者如何获取服务提供者的接口引用实现?
- 内容介绍
- 文章标签
- 相关推荐
本文共计8362个文字,预计阅读时间需要34分钟。
Dubbo消费者通过引用服务端接口,实现与本地调用类似的方式调用远程服务。这种设计从设计者的角度考虑,主要是为了简化远程服务调用的复杂性,提高开发效率。
java@Componentpublic class DubboConsumer { @Reference(check=false)}
本文主要解读dubbo消费者是如何引用服务端接口的,是如何像本地调用一样调用远程服务的。
并试着从设计者的角度思考,为何这样设计。
@Component public class DubboConsumer { @Reference(check = false) private HelloService helloService; public String sayHello(String name) { return helloService.sayHello(name); } }
拿这个实际的例子来说,DubboConsumer在创建实例的时候,是如何注入HelloService依赖的,因为HelloService实现类在远端的另一台服务器上。
我们都知道在Spring容器启动的时候,会加载所有类为BeanDefinition,然后在调getBean方法的时候,会对类进行实例化,并注入依赖。
使用@EnableDubbo表示要启动dubbo,会注册几个post processor,其中包括ReferenceAnnotationBeanPostProcessor,处理具有@Reference注解的属性,即在Spring bean实例化时,会注入通过dubbo方式生成的服务端引用。
本文共计8362个文字,预计阅读时间需要34分钟。
Dubbo消费者通过引用服务端接口,实现与本地调用类似的方式调用远程服务。这种设计从设计者的角度考虑,主要是为了简化远程服务调用的复杂性,提高开发效率。
java@Componentpublic class DubboConsumer { @Reference(check=false)}
本文主要解读dubbo消费者是如何引用服务端接口的,是如何像本地调用一样调用远程服务的。
并试着从设计者的角度思考,为何这样设计。
@Component public class DubboConsumer { @Reference(check = false) private HelloService helloService; public String sayHello(String name) { return helloService.sayHello(name); } }
拿这个实际的例子来说,DubboConsumer在创建实例的时候,是如何注入HelloService依赖的,因为HelloService实现类在远端的另一台服务器上。
我们都知道在Spring容器启动的时候,会加载所有类为BeanDefinition,然后在调getBean方法的时候,会对类进行实例化,并注入依赖。
使用@EnableDubbo表示要启动dubbo,会注册几个post processor,其中包括ReferenceAnnotationBeanPostProcessor,处理具有@Reference注解的属性,即在Spring bean实例化时,会注入通过dubbo方式生成的服务端引用。

