Dubbo对泛型参数方法进行反射调用

public static Object initDubboBean(List urlList ,String dubboVersion ,String applicationName,Class dubboClasss) {
    try {
        // 当前应用配置
        ApplicationConfig application = new ApplicationConfig();
        application.setName(applicationName);
        // 连接注册中心配置
        RegistryConfig registry = new RegistryConfig();

        if (CollectionUtils.isNotEmpty(urlList)) {
            urlList.forEach(url -> {
                registry.setAddress(urlList.get(0));
            });
        }
        // 注意:ReferenceConfig为重对象,内部封装了与注册中心的连接,以及与服务提供方的连接
        // 引用远程服务
        ReferenceConfig reference = new ReferenceConfig();
        reference.setApplication(application);
        // 多个注册中心可以用setRegistries()
        reference.setRegistry(registry);
        reference.setInterface(dubboClasss);
        reference.setVersion(StringUtils.isEmpty(dubboVersion) ? "1.0.0" : dubboVersion);
        Object obj = reference.get();
        return obj;
    } catch (Exception e) {
        log.error("report",e);
    }
    return "error";
}

你可能感兴趣的:(java开发)