dubbo泛化調用(參數為bean)


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;
}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM