博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
dubbo服务引用一之客户端配置
阅读量:5925 次
发布时间:2019-06-19

本文共 1963 字,大约阅读时间需要 6 分钟。

  • 修改相应的dubbo.properties,启动com.alibaba.dubbo.demo.provider.DemoProvider作为服务提供方。
  • 修改相应的dubbo.properties,调试com.alibaba.dubbo.demo.consumer.DemoConsumer作为服务引用方。

1、 consumer端服务引用配置

1.1、服务提接口pom坐标

com.alibaba
dubbo-demo-api
${project.parent.version}

1.2、dubbo:reference标签

基于dubbo.xsd中描述的扩展spring schema类配置xml

1.3、注入代码

通过set的方式来注入DemoService属性【spring Ioc的一种注入方式】

public class DemoAction {    private DemoService demoService;    public void setDemoService(DemoService demoService) {        this.demoService = demoService;    }        ...}

2、问题

这一些列操作完了,在conusmer端,我们并没有看到DemoService的任何实现类。那么问题来了,

2.1、如何获得DemoService实例的

从,我们可以类比得知,dubbo:reference会映射成一个ReferenceBean

public class ReferenceBean
extends ReferenceConfig
implements FactoryBean, ApplicationContextAware, InitializingBean, DisposableBean { private static final long serialVersionUID = 213195494150089726L; private transient ApplicationContext applicationContext; public ReferenceBean() { super(); } ... public Object getObject() throws Exception { return get(); } public Class
getObjectType() { return getInterfaceClass(); } @Parameter(excluded = true) public boolean isSingleton() { return true; } ...}

发现ReferenceBean实现了FactoryBean接口,FactoryBean是一个Java Bean,但是它是一个能生产对象的工厂Bean。通过FactoryBean#getObject我们就可以拿到该对象的实例。

public interface FactoryBean
{ //返回由FactoryBean创建的bean实例,如果isSingleton()返回true,则该实例会放到Spring容器中单实例缓存池中。 T getObject() throws Exception; //返回FactoryBean创建的bean类型。 Class
getObjectType(); //返回由FactoryBean创建的bean实例的作用域是singleton还是prototype。 boolean isSingleton(); }

2.2、获得的DemoService实例是啥

那么FactoryBean#getObject到底都发生了啥,下面我们来粗略的看一下。

转载地址:http://lzsvx.baihongyu.com/

你可能感兴趣的文章
我的友情链接
查看>>
连接数过多导致程序连接报错的原因
查看>>
47、【华为HCIE-Storage】--InfoReplicator
查看>>
MPLS_××× 标签分发详解
查看>>
SP2-0750: You may need to set ORACLE_HOME to your Oracle software directory
查看>>
bzoj1502: [NOI2005]月下柠檬树
查看>>
【oracle-基础知识】oracle体系结构
查看>>
轻松精通数据库管理之道——运维巡检之八(性能)
查看>>
pxe自动化安装系统
查看>>
php课程的第一天
查看>>
Python 自动化运维 dnspython
查看>>
【蜕变之路】第9天 变量 (2019年2月27日)
查看>>
Linux 练习题-4网络 问答
查看>>
在Oracle VM VirtualBox下安装centos 注意事项
查看>>
Python学习:函数(function)
查看>>
Python学习:列表(list)
查看>>
动态代理
查看>>
查看浏览器版本
查看>>
1965: [Ahoi2005]SHUFFLE 洗牌
查看>>
黑马程序员---7k面试题(二)---------------银行业务调度系统
查看>>