码迷,mamicode.com
首页 > 其他好文 > 详细

Dubbo接口泛化调用

时间:2020-11-30 15:17:06      阅读:7      评论:0      收藏:0      [点我收藏+]

标签:商务   python接口   作者   port   rac   iba   result   sts   stack   

Dubbo接口泛化调用

技术图片
技术图片


关注测试君 | 会上瘾

涉及jar包:


<dependency>
    <groupId>com.alibaba</groupId>
    <artifactId>dubbo</artifactId>
    <version>2.8.4</version>
</dependency>
<dependency>
    <groupId>com.101tec</groupId>
    <artifactId>zkclient</artifactId>
    <version>0.10</version>
</dependency>

如果入参为一个对象,类似于:


Person person = new PersonImpl(); 
person.setName("xxx"); 
person.setPassword("yyy");

调用方式如下:


package com.deppon.uap.appservice.util;

import com.alibaba.dubbo.config.ApplicationConfig;
import com.alibaba.dubbo.config.ReferenceConfig;
import com.alibaba.dubbo.config.RegistryConfig;
import com.alibaba.dubbo.config.utils.ReferenceConfigCache;
import com.alibaba.dubbo.rpc.service.GenericService;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

public class TambcdmUtil {

    public static void main(String[] args) {

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

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

        ReferenceConfig<GenericService> reference = new ReferenceConfig<GenericService>();
        reference.setApplication(application);
        reference.setRegistry(registry);
        reference.setInterface("com.xxx.test.TestService");
        // 声明为泛化接口
        reference.setGeneric(true); 
        reference.setGroup("stestn1");
        reference.setVersion("1.0.0");
        try {
            ReferenceConfigCache cache = ReferenceConfigCache.getCache();
            GenericService genericService = cache.get(reference);

            Map<String, Object> maps = new HashMap<String, Object>();
            maps.put("name","xxx");
            maps.put("password","xxx");
            // 基本类型以及Date,List,Map等不需要转换,直接调用
            Object result = genericService.$invoke("funcName",
                    new String[]{"Person"},
                    new Object[]{maps});
            System.out.println(result);

        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}
  • End -
  • 软件测试君 -

我们只研究那些
你感兴趣的技术

喜欢我们就长按下方图片扫码关注吧

技术图片

· 猜你喜欢的文章 ·

1、刚做测试工作一年的时候,我是怎样的?
2、请问,软件测试中,购物车的测试点有哪些?
3、四个类搞定分层自动化测试框架
4、关于接口测试看这篇文章就够了
5、python接口自动化学习笔记(封装方法用于读取excel)

技术图片

作者@简单随风br/>编辑@糖小幽
图片@来源于网络
商务合作请联系微信:sofeicoffee

Dubbo接口泛化调用

标签:商务   python接口   作者   port   rac   iba   result   sts   stack   

原文地址:https://blog.51cto.com/15009374/2553878

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!