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 放入我的项目中应用。
参考简书