这篇文章给大家介绍如何动态调用dubbo编程式,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。
创新互联致力于互联网网站建设与网站营销,提供网站制作、成都网站设计、网站开发、seo优化、网站排名、互联网营销、微信平台小程序开发、公众号商城、等建站开发,创新互联网站建设策划专家,为不同类型的客户提供良好的互联网应用定制解决方案,帮助客户在新的全球化互联网环境中保持优势。
定一个接口
public interface ToDoService { String test(String s);}
两个实现
@Service(group = "test1")public class ToDoService1 implements ToDoService {@Override public String test(String s) {return "1" + s; } }
@Service(group = "test2")public class ToDoService2 implements ToDoService {@Override public String test(String s) {return "2" + s; } }
这里通过 group来区分两个实现类
调用方:
/** * 执行ToDoService * * @param group * @return */public String executeToDoService(String group) { ReferenceConfigreferenceConfig = new ReferenceConfig<>(); referenceConfig.setInterface(ToDoService.class); referenceConfig.setGroup(group); ReferenceConfigCache cache = ReferenceConfigCache.getCache(); ToDoService toDoService1 = cache.get(referenceConfig); try {return toDoService1.test("哈哈"); } catch (Exception ex) {return ""; } }
这里需要注意的是,ReferenceCofing 官方文档里说很重,需要缓存,言外之意就是不要重复new ReferenceCofing 实例,这样会不断的会注册成为消费者 Consumer 。
但是官方提供了 ReferenceConfigCache ,所以不要自己写个什么静态的 hashMap来缓存,用dubbo开发者提供的工具来获取 我们需要调用的实例
ReferenceConfigCache cache = ReferenceConfigCache.getCache(); ToDoService toDoService1 = cache.get(referenceConfig);
关于如何动态调用dubbo编程式就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。