W3Cschool
恭喜您成為首批注冊(cè)用戶(hù)
獲得88經(jīng)驗(yàn)值獎(jiǎng)勵(lì)
實(shí)現(xiàn)一個(gè)通用的遠(yuǎn)程服務(wù) Mock 框架,可通過(guò)實(shí)現(xiàn) GenericService 接口處理所有服務(wù)請(qǐng)求
泛接口實(shí)現(xiàn)方式主要用于服務(wù)器端沒(méi)有 API 接口及模型類(lèi)元的情況,參數(shù)及返回值中的所有 POJO 均用 Map 表示,通常用于框架集成,比如:實(shí)現(xiàn)一個(gè)通用的遠(yuǎn)程服務(wù) Mock 框架,可通過(guò)實(shí)現(xiàn) GenericService 接口處理所有服務(wù)請(qǐng)求。
在 Java 代碼中實(shí)現(xiàn) ?GenericService
?接口:
package com.foo;
public class MyGenericService implements GenericService {
public Object $invoke(String methodName, String[] parameterTypes, Object[] args) throws GenericException {
if ("sayHello".equals(methodName)) {
return "Welcome " + args[0];
}
}
}
在 Spring 配置申明服務(wù)的實(shí)現(xiàn):
<bean id="genericService" class="com.foo.MyGenericService" />
<dubbo:service interface="com.foo.BarService" ref="genericService" />
...
// 用org.apache.dubbo.rpc.service.GenericService可以替代所有接口實(shí)現(xiàn)
GenericService xxxService = new XxxGenericService();
// 該實(shí)例很重量,里面封裝了所有與注冊(cè)中心及服務(wù)提供方連接,請(qǐng)緩存
ServiceConfig<GenericService> service = new ServiceConfig<GenericService>();
// 弱類(lèi)型接口名
service.setInterface("com.xxx.XxxService");
service.setVersion("1.0.0");
// 指向一個(gè)通用服務(wù)實(shí)現(xiàn)
service.setRef(xxxService);
// 暴露及注冊(cè)服務(wù)
service.export();
Copyright©2021 w3cschool編程獅|閩ICP備15016281號(hào)-3|閩公網(wǎng)安備35020302033924號(hào)
違法和不良信息舉報(bào)電話(huà):173-0602-2364|舉報(bào)郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號(hào)
聯(lián)系方式:
更多建議: