其他分享
首页 > 其他分享> > 无需controller直接调用API方法

无需controller直接调用API方法

作者:互联网

import com.alibaba.dubbo.config.ApplicationConfig;
import com.alibaba.dubbo.config.ReferenceConfig;
import com.alibaba.dubbo.config.RegistryConfig;
import com.alibaba.fastjson.JSONObject;
import com.cheetah.extend.result.ResultSet;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;

/**
 * 写一个有main方法的类就行
 */
public class AppTestDelete {

    public static void main(String[] args) throws Exception{
        // 当前应用配置
        ApplicationConfig application = new ApplicationConfig();
        application.setName("test-consumer");
        application.setOwner("nieminle");

        // 连接注册中心配置,有些zk地址需要内网
        RegistryConfig registry1 = new RegistryConfig();
        registry1.setAddress("这里是你的注册中心,我用的zookeeper");

        // 注意:ReferenceConfig为重对象,内部封装了与注册中心的连接,以及与服务提供方的连接
        // 引用远程服务
        ReferenceConfig<IAccStudyAginAPI> reference = new ReferenceConfig<IAccStudyAginAPI>(); // 此实例很重,封装了与注册中心的连接以及与提供者的连接,请自行缓存,否则可能造成内存和连接泄漏
        reference.setApplication(application);
        reference.setRegistries(Arrays.asList(registry1));
        reference.setInterface(IAccStudyAginAPI.class);
        reference.setVersion("1.0.0"); //版本号

        // 和本地bean一样使用xxxService
        IAccStudyAginAPI permissionFacadeAPI = reference.get(); // 注意:此代理对象内部封装了所有通讯细节,对象较重,请缓存复用

        List<UserCourseOrderParam> param = new ArrayList<>();
        ResultSet<List<UserCourseOrderDTO>> resultSet = permissionFacadeAPI.queryUserCourseByOrderId(param);
        System.out.println("关键字=-=-=-=-=-="+ JSONObject.toJSONString(resultSet));
        
        //结果会输出一大段文字,你搜关键字就能找到API接口返回的值

    }


}

标签:调用,reference,application,controller,API,new,import,ReferenceConfig,com
来源: https://blog.csdn.net/weixin_43850320/article/details/116481295