Dubbo 泛化引用简介
warning:
这篇文章距离上次修改已过592天,其中的内容可能已经有所变动。
使用方式
在这里我们主要介绍两种使用方式:
1.通过 Spring 使用泛化引用
配置 XML 文件中的服务引用为generic="true"
<dubbo:reference id="barService" interface="com.muke.dubbocourse.common.api.BookFacade" generic="true" />
<!--more-->
在代码中使用泛化调用
GenericService barService = (GenericService) applicationContext.getBean("bookFacade");
Object result = barService.$invoke("queryAll", null, null);
2.通过 Java API 方式使用
// 引用远程服务
ReferenceConfig<GenericService> reference = new ReferenceConfig<GenericService>();
// 弱类型接口名
reference.setInterface("com.muke.dubbocourse.common.api.BookFacade");
reference.setVersion("0.0.1");
// 声明为泛化接口
reference.setGeneric(true);
// 用org.apache.dubbo.rpc.service.GenericService可以替代所有接口引用
GenericService genericService = reference.get();
// 如果返回实体对象将自动转成Map
Object result = genericService.$invoke("queryByName",new String[]
{"com.muke.dubbocourse.common.api.RequestParameter"}, new Object[]{parameter});