【Apache Thrift】Thrift的使用和编译(二)
来源:互联网 发布:mysql学生管理系统 编辑:程序博客网 时间:2024/06/05 01:07
一、Thrift的使用
1.1基本类型
thrift不支持无符号类型,因为很多编程语言不存在无符号类型,比如Java
- byte: 有符号字节
- i16: 16位有符号整数
- i32: 32位有符号整数
- i64: 64位有符号整数
- double: 64位浮点数
- string: 字符串
1.2容器类型
集合中的元素可以是除了service之外的任何类型,包括exception。
- list<T>: 一系列由T类型的数据组成的有序列表,元素可以重复
- set<T>: 一系列由T类型的数据组成的无序集合,元素不可重复
- map<K, V>: 一个字典结构,key为K类型,value为V类型,相当于Java中的HashMap<K,V>
1.3 结构体(struct)
就像C语言一样,thrift也支持struct类型,目的就是将一些数据聚合在一起,方便传输管理。struct的定义形式如下:1.4 枚举
枚举的定义形式和Java的Enum定义差不多,例如:1.5 异常(exception)
thrift支持自定义exception,规则和struct一样,如下:1.6 服务(service)
thrift定义服务相当于Java中创建Interface一样,创建的service经过代码生成命令之后就会生成客户端和服务端的框架代码。定义形式如下:1.7 类型定义
thrift支持类似C++一样的typedef定义,比如:注意:末尾没有逗号或者分号!
1.8 常量(const)
thrift也支持常量定义,使用const关键字,例如:末尾的分号是可选的,可有可无,并且支持16进制赋值
1.9 命名空间
thrift的命名空间相当于Java中的package的意思,主要目的是组织代码。thrift使用关键字namespace定义命名空间,例如:提示:格式是namespace 语言(Java) 路径(com.game.lll.thrift), 注意末尾不能有分号。
1.10 文件包含
thrift也支持文件包含,相当于C/C++中的include,Java中的import,C#中的using。使用关键字include定义,例 如:1.11 注释
thrift注释方式支持shell风格的注释,支持C/C++风格的注释,即#和//开头的语句都单当做注释,/**/包裹的语句也是注释。
1.12 可选与必选
thrift提供两个关键字required,optional,分别用于表示对应的字段时必填的还是可选的。例如:
表示name是必填的,age是可选的。
二、Thrift编译
2.1 代码示例
步骤一:创建一个文件,代码如下:步骤二:在终端输入命令thrift -gen java login.thrift后会在当前目录下生成gen-java文件夹,该文件夹下会按照namespace定义的路径名一次一层层生成文件夹,到gen-java/com/game/lll/thrift/目录下可以看到生成的3个.java类。这是我的目录:
步骤三:服务器端分三步准备
1>下载jar包
- org.slf4j.api_1.6.4.jar
- org.apache.http目录下所有jar包
- javax.servlet目录下所有jar包
3>找到thrift-0.9.3\lib\java\src,将目录下的代码拷贝到JavaThrift工程里。
步骤五:启动服务器
步骤六:运行LoginMain,控制台输出结果
Starting the simple server...
步骤七:新建一个客户端ClientMain.java来访问服务端。代码如下:
步骤八:测试结果
参考:http://www.jianshu.com/p/0f4113d6ec4b
阅读全文
0 0
- 【Apache Thrift】Thrift的使用和编译(二)
- 【Apache Thrift】Thrift的使用和编译(二)
- Apache Thrift的简单使用
- Apache Thrift的简单使用
- Apache Thrift的简单使用
- Apache Thrift的简单使用
- Apache Thrift的简单使用
- Apache Thrift的简单使用
- Apache Thrift的简单使用
- Apache Thrift的简单使用
- Apache Thrift的简单使用
- Apache Thrift学习二
- Apache Thrift 使用
- Apache Thrift使用总结
- Apache Thrift使用总结
- thrift的安装和使用
- thrift 的原理和使用
- apache thrift的不足
- 一张图看懂offsetX、clientX、screenX、pageX
- Itween API说明
- 单工 半双工 全双工
- 序列化,反序列化,可变数组,反射,注解 元注解---了解
- 指数循环节 uva 10692
- 【Apache Thrift】Thrift的使用和编译(二)
- [PKU暑课笔记] 动态规划 POJ1163数字三角形
- UncaughtExceptionHandler:java未捕获的异常/错误默认处理方式
- 13.5-全栈Java笔记:打飞机游戏实战项目|KeyEvent|Plane|live
- 文献免费下载网站 SCI-HUB
- HDU5009西安网赛2014
- Java--面向对象基础
- ASP.NET Web Pages – WebMail 帮助器
- Java并发Lock接口