在官方文档中可以看到
协议缓冲区是一种语言无关,平台无关,可扩展的序列化结构数据的方法,它可用于(数据)<强>通信协议,数据存储强>等。协议缓冲区是一种灵活、高效、自动化机制的结构数据序列化方法,可类比XML,但是比XML <强>更小>强(3 ~ 10倍),<强>更快强>(20 ~ 100倍),更为<强>简单强>。引用>可以看到protobuf 与json相比具有<强>压缩比高强> <>强,解压缩速度更快>强的优点,,
protobuf在使用上较为复杂,过程可以分为以下几步:
<李>,编写java 的POJO类李> <李>通过工具将java的POJO类,生成protobuf数据格式下的(在想法中可以下载Pojo2Proto插件)李> <李>新建一个以.proto的文件,并写入Pojo2Proto插件生成数据李> <李>通过proto.exe程序将.proto文件编译生成java类,该java类中定义有PB对该类的数据格式定义,获?设置操作,解/压锁数据的方法李>
POJO类数据:
公共类实体{ 私人字符串键; 私人字符串值; 公共字符串getKey () { 返回键; } 公共空间setKey (String键){ 这一点。键=键; } 公共字符串getValue () { 返回值; } 公共空间setValue(字符串值){ 这一点。值=https://www.yisu.com/zixun/value; } },,,生成的protobuf的数据:
语法=" proto3”; {消息实体 字符串键=1; 字符串值=https://www.yisu.com/zixun/2; }<强>通过protoc.exe进行编译强>
在原型。exe的下载地址https://repo1.maven.org/maven2/com/google/protobuf/protoc/编译Entity.proto文件
<强> protoc-3.9.2-windows-x86_64.exe ;。/src/main/原型/实体。原型——java_out=?src/main/java/src/强> 引用>编译后生成有<强>实体强> <强> OuterClass >强类的文件,,通过<强>实体强> <强> OuterClass类强>压缩数据
StreamWrap.Entity。Builder构建器=StreamWrap.Entity.newBuilder ();//构造数据 builder.setKey (“123”); builder.setValue (“123”); StreamWrap。实体实体=builder.build ();//将该铅类转换为二进制数据格式 byte[]迷=entity.toByteArray ();通过<强>实体强> <强> OuterClass类>强解压缩数据
到此这篇关于Protobuf的简要介绍及使用的文章就介绍到这了,更多相关Protobuf使用内容请搜索以前的文章或继续浏览下面的相关文章希望大家以后多多支持!
Protobuf的简要介绍及使用详解