代码拉取完成,页面将自动刷新
SpringBoot开箱即用远程dubbo调用,无需配置消费者的xml。
如果需要第三方来按照我们的标准来实现某个接口,并且我们需要远程动态调用该实现。
在自身系统定义接口,让第三方实现,并通过dubbo提供者暴露该接口。然后就可以在自身系统通过本框架调用。
做类似dubbo网关。仅需要依赖提供方的接口,即可根据不同的参数来动态调用
提供方的接口,以避免如果comsumer的xml配置变了,需要修改代码。
直接在SpringBoot项目中引入依赖
<dependency>
<groupId>com.cnct.generic.dubbo</groupId>
<artifactId>generic-dubbo-springboot-starter</artifactId>
<version>1.0.5.RELEASE</version>
</dependency>
在application.propertis中可供配置的选项:
配置当前调用者的服务名称 generic.dubbo.applicationName = ""
注册中心的连接地址 generic.dubbo.registryAddress = "zookeeper://localhost:2181";
使用方法: Springboot项目直接引入该项目即可:
@Autowired
InvokeCoreHandler invokeCoreHandler;
/**
* invoke方法有很多重载
* 可提供直连 和 走注册中心
* 提供分组(同一个接口不同实现),以及提供版本号的调用
*
* 可利用ParamBuilderManager.newParamBuilder()链式调用追加参数param,
* 因为是个object类型,所以直接传就好,顺序代表参数顺序。
* 最后调用build()即可
* @return
*/
Object result = invokeCoreHandler.invoke("com.cnct.tag.service.dubbo.TagDubboService", "markUserTags"
,"dubbo://192.168.13.66:21003" , ParamBuilderManager.newParamBuilder().param("0001ff1e3b1c430987bfda23621d815f").param(tags).build());
Object invoke(String interfaceName, String methodName, List<Object> paramList);
Object invoke(String interfaceName, String methodName, List<Object> paramList, String group);
Object invoke(String interfaceName, String methodName, String url, List<Object> paramList);
Object invoke(String interfaceName, String methodName, String url, List<Object> paramList, String group);
该项目目前是基于 SpringBoot 2.0.6.RELEASE 开发,
测试过 SpringBoot 1.5.x 版本是可以正常使用的。
如果有冲突请自行修改 Springboot parent版本。
如有疑问 请联系作者
作者:wangzhen 957847392@qq.com
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。