Rrotobuf 是Google 发布的开源项目,全称 Google Protocol Buffers, 是一种轻便高效的结构化数据存储格式,能够用与数据的序列化。它与开发语言无关,和平台无关,具备良好的可扩展性。Protobuf和全部的序列化框架同样,均可以用于数据存储、通信协议。
Portobuf的序列化的结果体积要比XML、JSON小不少,XML和JSON的描述信息太多了,致使消息要大;此外Portobuf还使用了Varint 编码,减小数据对空间的占用。java
Portobuf序列化和反序列化速度比XML、JSON快不少,是直接把对象和字节数组作转换,而XML和JSON还须要构建成XML或者JSON对象结构。数组
在idea的plugins中搜索proto
,而后下载以下的插件就行(最多下载的那个):这里我已经安装好了,点击install,而后重启就能够。框架
首先 引入依赖ide
<dependency> <groupId>com.google.protobuf</groupId> <artifactId>protobuf-java</artifactId> <version>3.6.1pr</version> </dependency>
在idea中新建一个Student.proto文件,写入:google
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放入项目中使用。idea
参考简书spa