您好,登录后才能下订单哦!
这篇文章给大家介绍如何动态调用dubbo编程式,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。
定一个接口
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) { ReferenceConfig<ToDoService> referenceConfig = 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编程式就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。