1

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,然后重启就可以。

image-20200805220506087

使用教程

首先 引入依赖

<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放入项目中使用。

参考简书


njitzyd
58 声望7 粉丝