Dubbo 泛化引用简介

2023-07-17 19:52:19 浏览数 (1)

使用方式

在这里我们主要介绍两种使用方式: 1.通过 Spring 使用泛化引用 配置 XML 文件中的服务引用为generic="true"

代码语言:javascript复制
  <dubbo:reference id="barService" interface="com.muke.dubbocourse.common.api.BookFacade" generic="true" />
代码语言:javascript复制
<!--more-->
在代码中使用泛化调用
代码语言:javascript复制
  GenericService barService = (GenericService) applicationContext.getBean("bookFacade");
  Object result = barService.$invoke("queryAll", null, null);

2.通过 Java API 方式使用

代码语言:javascript复制
// 引用远程服务 
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}); 

0 人点赞