RPC接口实现_一个接口多个实现

RPC接口实现_一个接口多个实现1.RPC作用以目前的认识,RPC的作用:多个工程之间数据传输。2.逐步完成RPC接口实现第一步:编写thrift文件,语法格式和java不同。在布局分层里安排在了client层

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE稳定放心使用

1.RPC作用

以目前的认识,RPC的作用:多个工程之间数据传输。

 

2.逐步完成RPC接口实现

 

第一步:

编写thrift文件,语法格式和java不同。

在布局分层里安排在了client层

include "base.thrift"
namespace java com.***.***.***.***.***.student

/**
 * 学生信息实体
 **/
struct StudentInfo {
    // id
    1: i64 Id,

    // 学生编码
    2: string RuleNo,

    // 学生名称
    3: string RuleName,

    // 学生类型 
    4: i32 RuleType,
}

/**
  *  班级信息
  **/
struct StudentClassVO{

    //  班级ID
    1: i64 Id,

    //  班级编码
    2: string StudentClassNo,

    //  班级名称
    3: string StudentClassName,

}


/**
 * 学生信息查询请求
 **/
 struct StudentInfoQueryRequest{

    // 学生编码
    1: string StudentNo,

    255: optional base.Base Base,
 }

/**
 * 学生信息查询响应
 **/
 struct StudentInfoQueryResponse{

    // 学生信息(唯一)
    1: StudentInfo studentInfo,

    255: base.BaseResp BaseResp,

 }


其中  struct StudentInfoQueryRequest 和  struct StudentInfoQueryResponse 是请求方法。

然后在thrift总文件中添加相关方法声明

/**
    * 根据StudentNo获取学生信息
    **/
    student_rule.StudentInfoQueryResponsequeryAllocRule(1:student_info.StudentInfoQueryRequest req),

这样,thrift就算是写好了。

 

第二步:校验并编译thrift

第一次写thrift可能会有语法错误,比如忘记加逗号或者冒号是中文的,

可以用这种方法校验

(1)点击总thrift文件右键 copy path -> absolute path

  (2)  terminal里敲: thrift –gen java [这里添加thrift的绝对路径]

可以提示哪一行有语法错误。

 

然后到打开右侧Maven,在client包的Lifecycle中install就可以生成jar包里了。

 

第三步:实现方法接口

找到studentMapper,

自动生成一个方法:selectStudentByStudentNo

然后到Service层,StudentManager中写一下方法:

/**
     * 根据 studentNo 查询学生信息
     *
     * @param studentNo 学生编码
     */
    public Optional<StudentInfoVO> queryStudentInfoByStudentNo(String StudentNo){
        
        StudentInfo studentInfo =  StudentMapper.selectStudentByStudentNo(StudentNo);
       

        return Optional.ofNullable(BeanCopyUtil.copyToTargetClass(studentInfo,StudentInfoVO.class));
    }

这里BeanCopyUtil是一个对象属性复制方法,以后会更新一下,可以理解为把两个对象名称一样的属性直接进行自动赋值。

这样接口就写好了,然后在web层调用一下。

 

第四步:调用接口

在web层里建立一个thriftServiceImpl的类(java)

先添加manager

    @Override
    @AutoLog("[rpc]")
    public StudentInfoQueryResponse studentInfoRule(StudentInfoQueryRequest req)throws TException{

        StudentInfoQueryResponse response = new StudentInfoQueryResponse();
        response.setBaseResp(new BaseResp());


        StudentInfoVO studentInfoVO = StudentInfoManager.queryStudentInfoByShopNo(req.StudentNo).orElse(null);
        response.setStudentInfo(BeanCopyUtil.copyToTargetClass(StudentInfoVO,StudentInfo.class));

        return response;
    }

这样就可以在另外一个工程里访问student的属性方法了。

 

 

 

 

 

 

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/182280.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • springboot配置文件的属性集

    springboot配置文件的属性集springboot配置文件的属性集

    2022年4月22日
    41
  • 如何设置python的环境变量_anaconda3添加环境变量

    如何设置python的环境变量_anaconda3添加环境变量在python项目实践中,不知道为什么我的os.getenv一直拿不到环境变量,于是我就试了三种设置环境变量的方法,中解决了问题。一.系统变量设置python环境变量的配置方法:1、第一步在我们的电脑上鼠标右键此电脑,选择属性,进去之后,点击高级系统设置,如下图所示2、第二步进去之后,点击环境变量,如下图所示:3、第三步进去环境变量界面之后,点击path,进行编辑,如下图所示:二.pycharm用户环境变量设置:1.打开文件—设置2.打开构建,执行,部署–python控制台–环境变量

    2022年8月29日
    4
  • 对贝叶斯理解以及解释贝叶斯函数「建议收藏」

    对贝叶斯理解以及解释贝叶斯函数「建议收藏」贝叶斯

    2022年5月7日
    71
  • spss聚类分析的简单例题_聚类分析的简单例题

    spss聚类分析的简单例题_聚类分析的简单例题一、什么是聚类分析聚类分析指将物理或抽象对象的集合分组为由类似的对象组成的多个类的分析过程。它是一种重要的人类行为。聚类分析的目标就是在相似的基础上收集数据来分类。聚类源于很多领域,包括数学,计算机科学,统计学,生物学和经济学。在不同的应用领域,很多聚类技术都得到了发展,这些技术方法被用作描述数据,衡量不同数据源间的相似性,以及把数据源分类到不同的簇中。——《百度百科–聚类分析》二、基本步…

    2022年8月31日
    5
  • STL vector用法介绍

    STL vector用法介绍介绍这篇文章的目的是为了介绍std::vector,如何恰当地使用它们的成员函数等操作。本文中还讨论了条件函数和函数指针在迭代算法中使用,如在remove_if()和for_each()中的使用。通过阅读这篇文章读者应该能够有效地使用vector容器,而且应该不会再去使用C类型的动态数组了。 Vector总览vector是C++标准模板库中的部分内容,它是一个多功能的,能够操作多种

    2022年6月16日
    28
  • 4.Python中条件语句使用方法(if语句、if嵌套)

    4.Python中条件语句使用方法(if语句、if嵌套)Python条件语句是通过一条或多条语句的执行结果(True或者False)来决定执行的代码块。可以通过下图来简单了解条件语句的执行过程:1.if条件语句的基本用法:if判断条件:执行语句……else:执行语句……其中”判断条件”成立时(非零),则执行后…

    2022年9月25日
    3

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号