Protobuf简介
Rrotobuf 是Google 发布的开源项目,全称 Google Protocol Buffers, 是一种轻便高效的结构化数据存储格式,可以用与数据的序列化。它与开发语言无关,和平台无关,具有良好的可扩展性。Protobuf和所有的序列化框架一样,都可以用于数据存储、通讯协议。
Portobuf的序列化的结果体积要比XML、JSON小很多,XML和JSON的描述信息太多了,导致消息要大;此外Portobuf还使用了Varint 编码,减少数据对空间的占用。
Portobuf序列化和反序列化速度比XML、JSON快很多,是直接把对象和字节数组做转换,而XML和JSON还需要构建成XML或者JSON对象结构。
安装教程
在idea的plugins中搜索proto
,然后下载如下的插件就行(最多下载的那个):这里我已经安装好了,点击install,然后重启就可以。
使用教程
首先 引入依赖
<dependency>
<groupId>com.google.protobuf</groupId>
<artifactId>protobuf-java</artifactId>
<version>3.6.1pr</version>
</dependency>
在idea中新建一个Student.proto文件,写入:
syntax = "proto3"; //版本
option java_outer_classname = "StudentPOJO";//生成的外部类名,同时也是文件名
//protobuf 使用message 管理数据
message Student { //会在 StudentPOJO 外部类生成一个内部类 Student, 他是真正发送的POJO对象
int32 id = 1; // Student 类中有 一个属性 名字为 id 类型为int32(protobuf类型) 1表示属性序号,不是值
string name = 2;
}
然后在本地编译,需要下载protoc.exe 程序。
使用命令protoc.exe --java_out = . Student.proto
,然后把生成的StudentPOJO放入项目中使用。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。