首页 > 其他 > 详细

dubbo泛化调用

时间:2019-04-25 20:12:28      阅读:209      评论:0      收藏:0      [点我收藏+]
public static Object dubbogeneric (String applicationName, String interfaceName, String dubboGroup, String dubboVersion, String method, String className, String param) {

    // 普通编码配置方式
    ApplicationConfig application = new ApplicationConfig();
    application.setName(applicationName);

    // 连接注册中心配置
    RegistryConfig registry = new RegistryConfig();
    registry.setAddress("zookeeper://x.x.x.x:2181");

    ReferenceConfig<GenericService> reference = new ReferenceConfig<GenericService>();

    reference.setApplication(application);
    reference.setRegistry(registry);
    reference.setInterface(interfaceName);
    reference.setGroup(dubboGroup);
    reference.setVersion(dubboVersion);
    // 声明为泛化接口
    reference.setGeneric(true);

    ReferenceConfigCache cache = ReferenceConfigCache.getCache();
    GenericService genericService = cache.get(reference);

    //基本类型以及Date,List,Map等不需要转换,直接调用
    String[] parameterTypes = new String[]{className};

    Map params = JSON.parseObject(param);
    params.put("class", className);

    Object result = genericService.$invoke(method, parameterTypes,new Object[]{params});

    return result;
}

 

dubbo泛化调用

原文:https://www.cnblogs.com/ligh-test/p/10770643.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!