IDL和生成代码分析

简介: IDL:接口描述语言这里使用thrift-0.8.0-xsb这个版本来介绍IDL的定义以及简单实例分析。1. namespace 定义包名2.struct 结构体,定义服务接口的参数和返回值用到的类结构。

IDL:接口描述语言

这里使用thrift-0.8.0-xsb这个版本来介绍IDL的定义以及简单实例分析。

1. namespace 定义包名

2.struct 结构体,定义服务接口的参数和返回值用到的类结构。基本类型不需要使用struct.

3.service 定义接口:demo.thrift

复制代码
 1 namespace java com.thrift.demo
 2 
 3 struct Parameter {
 4     1: required i32 id;
 5     2: required string name;
 6 }
 7 
 8 service DemoService {
 9     i32 demoMethod(1:string param1, 2:Parameter param2, 3:map<string,string> param3);
10 }
复制代码

命令行执行 thrift -r --gen java demo.thrift,生成gen-java文件夹,在eclipse下创建名为gen-java的工程,然后将生成的gen-java放入eclipse的工作空间,即可关联成为一个gen-java工程(也可以自定义一个java工程,然后将生成的代码导入,此时只有JRE-System Library,java文件均报错。手动创建一个新的文件夹将Thrift工程需要的jar包以及libthrift-0.8.0.jar放置到文件夹下,同时在Java Build Path中添加引用。我这里直接使用eclipse自动fixed setup 导入,然后就出现了Refferenced Libraries文件夹,文件夹中包含了libthrift-0.8.0.jar等需要的jar包。如下图所示:

可见:每个struct会单独生成一个类,每个service也会生成一个类。下面着重看下生成的Demoservice.java。

如上图所示,Demoservice.java中主要由5部分组成:

1.接口类型:Iface(同步调用) AsyncIface(异步调用)

2.客户端类型:Client    AsynClient

3.方法参数封装类类型:demoMethod_args (方法名_args)

4.返回结果封装类类型:demoMethod_result(方法名_result)

5.Processor

做人第一,做学问第二。
目录
相关文章
|
7月前
|
IDE 开发工具 Android开发
Kotlin 的静态代码分析工具
Kotlin 的静态代码分析工具
104 0
|
索引
Lua语言中编写模块的基本方法
Lua语言中编写模块的基本方法
130 0
|
计算机视觉 异构计算
对Any_percision的代码分析
首先是数据集的选择:cifar10, imagenet,svnh 网络的选择:resent20q
55 0
|
存储 Java 编译器
Smali 语法解析 —— 类
Smali 语法解析 —— 类
【Groovy】编译时元编程 ( 编译时处理 ASTTransformation 接口实现 | 配置 ASTTransformation )
【Groovy】编译时元编程 ( 编译时处理 ASTTransformation 接口实现 | 配置 ASTTransformation )
192 0
【Groovy】编译时元编程 ( 编译时处理 ASTTransformation 接口实现 | 配置 ASTTransformation )
|
Java Linux Android开发
【Groovy】编译时元编程 ( 编译时元编程引入 | 声明需要编译时处理的类 | 分析 Groovy 类的 AST 语法树 )
【Groovy】编译时元编程 ( 编译时元编程引入 | 声明需要编译时处理的类 | 分析 Groovy 类的 AST 语法树 )
140 0
【Groovy】编译时元编程 ( 编译时元编程引入 | 声明需要编译时处理的类 | 分析 Groovy 类的 AST 语法树 )
|
Java Android开发
|
Java Scala Kotlin
JVM语言生态结构原理图 从Java,Kotlin,Scala,Groovy等语言的编译、执行全过程图示解析
JVM语言生态结构原理图 从Java,Kotlin,Scala,Groovy等语言的编译、执行全过程图示解析 JVM语言生态 by 陈光剑.png
1044 0