您现在的位置是:主页 > news > wordpress个人网站主题/谷歌关键词搜索工具
wordpress个人网站主题/谷歌关键词搜索工具
admin2025/4/29 15:05:55【news】
简介wordpress个人网站主题,谷歌关键词搜索工具,无锡做家纺公司网站,怎么做58同城网站我写了个方法,可以给方法传递指定的Dubbo接口名,方法名,参数值,方法来调用我们指定的Dubbo接口,并返回结果。 这次用的是Dubbo的GenericService。 示例代码: Controller RequestMapping("/test"…
我写了个方法,可以给方法传递指定的Dubbo接口名,方法名,参数值,方法来调用我们指定的Dubbo接口,并返回结果。
这次用的是Dubbo的GenericService。
示例代码:
@Controller
@RequestMapping("/test")
public class TestController {/*** @param interfaceName Dubbo接口名* @param methodName 方法名* @param parameter 参数值* @return*/@RequestMapping(value = "/test2", method = RequestMethod.POST)@ResponseBodypublic 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<GenericService> reference = new ReferenceConfig<GenericService>();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.setAddress()方法填写的zookeeper的地址。
2,调用泛化接口时,reference.setGeneric(true)是必要的。
GenericService简介
GenericService是Dubbo提供的泛化接口。
当服务提供者使用这个接口时,可以省略Interface的代码,省略方法和参数的声明,通过指定接口名称的方式接入zookeeper。这时GenericService变成了一个网关。
当服务消费者使用这个接口时,有个好处是不依赖服务提供者的Interface接口类,而是通过指定具体接口类地址的方式,创建消费者,并去zookeeper查找对应的提供者,然后发起调用。
GenericService接口只有一个方法:
Object $invoke(String var1, String[] var2, Object[] var3) throws GenericException;
其中第一个参数是方法名。
第二个参数是一个字符串数组,这是接口方法每个参数的类型全路径。
第三个参数是Object数组,是传给方法的具体参数列表。
$invoke()方法的返回值:当返回的是单个非简单元素时,返回值类型实际上是HashMap,当返回的是列表时,返回值类型实际上是ArrayList<HashMap>。
详细一点的介绍参见:
Dubbo的GenericService简介和基本使用
本文结束
三篇手动调用指定Dubbo接口的文章:
手动调用指定Dubbo接口(一)----Spring注入篇
手动调用指定Dubbo接口(二)----Reference篇
手动调用指定Dubbo接口(三)----GenericService篇