手動起動指定Duboインターフェース(三)----GenericService編
方法を書いて、指定されたDuboインターフェース名、方法名、パラメータ値を方法に伝えて、メソッドは私達が指定したDuboインターフェースを呼び出して、結果を返します。
今回はDuboのGenericServiceを使います。
サンプルコード:
1,registryConfig.set Address()メソッドで記入したzookeeperの住所です。
2,汎用インターフェースを呼び出す時には、reference.setGenerac(true)が必要です。
GenericService概要
GenericServiceはDuboが提供する汎用インターフェースです。
サービスプロバイダがこのインターフェースを使用すると、Interfaceのコードは省略され、方法とパラメータの声明は省略され、インターフェース名を指定することでzookeeperにアクセスすることができます。この時GenericServiceはゲートウェイになりました。
サービス消費者がこのインターフェースを利用する場合、サービスプロバイダのInterfaceインターフェースクラスに依存せず、具体的なインターフェースタイプのアドレスを指定することによって、消費者を作成し、zookeeperに行って対応するプロバイダを検索し、呼び出しを開始するメリットがある。
GenericServiceインターフェースは一つの方法しかないです。
Object$invoke(String var 1,String[]var 2,Object[]var 3)throws Generic Exception;
最初のパラメータはメソッド名です。
第二のパラメータは、各パラメータのタイプのパスである文字列配列である。
3番目のパラメータはObject配列であり、方法に伝える具体的なパラメータリストである。
$invoke()メソッドの戻り値:単一の非単純要素が返された場合、戻り値タイプは実際にはhashMapであり、戻り値がリストである場合、戻り値タイプは実際にはArayListである。
詳細は以下を参照してください。
DuboのGenericService概要と基本使用
本論文は終了します
三篇手動で指定されたDuboインターフェースの文章を呼び出します。
手動呼び出し指定Duboインターフェース(一)----Spring注入編
手動起動指定Duboインターフェース(二)----Reference編
手動起動指定Duboインターフェース(三)----GenericService編
今回はDuboのGenericServiceを使います。
サンプルコード:
@Controller
@RequestMapping("/test")
public class TestController {
/**
* @param interfaceName Dubbo
* @param methodName
* @param parameter
* @return
*/
@RequestMapping(value = "/test2", method = RequestMethod.POST)
@ResponseBody
public static Object test2(@RequestParam(value = "interfaceName") String interfaceName,
@RequestParam(value = "methodName") String methodName,
@RequestParam(value = "parameter") String parameter) {
ApplicationConfig application = new ApplicationConfig("test-consumer"); // dubbo
RegistryConfig registryConfig=new RegistryConfig();
registryConfig.setAddress("zookeeper://127.0.0.1:2181");
application.setRegistry(registryConfig);
ReferenceConfig reference = new ReferenceConfig();
reference.setApplication(application);
reference.setInterface(interfaceName);
// reference.setGroup("my-group");
// reference.setVersion("1.0.0");
reference.setTimeout(3000);
reference.setGeneric(true);
GenericService genericService = reference.get();
Object object = genericService.$invoke(methodName, new String[]{"java.lang.String"}, new Object[]{parameter}); // ,
//
Query query = new Query();
query.setOrderStatus(1);
Object object2 = genericService.$invoke("selectList", new String[]{"com.test.Query"}, new Object[]{query}); // ,
System.out.println(object2);
return object;
}
public static void main(String[] args) {
test2("com.test.OrderService","selectOne","ABC123");
}
}
注:1,registryConfig.set Address()メソッドで記入したzookeeperの住所です。
2,汎用インターフェースを呼び出す時には、reference.setGenerac(true)が必要です。
GenericService概要
GenericServiceはDuboが提供する汎用インターフェースです。
サービスプロバイダがこのインターフェースを使用すると、Interfaceのコードは省略され、方法とパラメータの声明は省略され、インターフェース名を指定することでzookeeperにアクセスすることができます。この時GenericServiceはゲートウェイになりました。
サービス消費者がこのインターフェースを利用する場合、サービスプロバイダのInterfaceインターフェースクラスに依存せず、具体的なインターフェースタイプのアドレスを指定することによって、消費者を作成し、zookeeperに行って対応するプロバイダを検索し、呼び出しを開始するメリットがある。
GenericServiceインターフェースは一つの方法しかないです。
Object$invoke(String var 1,String[]var 2,Object[]var 3)throws Generic Exception;
最初のパラメータはメソッド名です。
第二のパラメータは、各パラメータのタイプのパスである文字列配列である。
3番目のパラメータはObject配列であり、方法に伝える具体的なパラメータリストである。
$invoke()メソッドの戻り値:単一の非単純要素が返された場合、戻り値タイプは実際にはhashMapであり、戻り値がリストである場合、戻り値タイプは実際にはArayListである。
詳細は以下を参照してください。
DuboのGenericService概要と基本使用
本論文は終了します
三篇手動で指定されたDuboインターフェースの文章を呼び出します。
手動呼び出し指定Duboインターフェース(一)----Spring注入編
手動起動指定Duboインターフェース(二)----Reference編
手動起動指定Duboインターフェース(三)----GenericService編