本文主要是介绍无需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接口返回的值
}
}
这篇关于无需controller直接调用API方法的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!