1、protobuf 来源?
Protocal Buffers(简称protobuf)是谷歌的一项技术,用于结构化的数据序列化、反序列化。
2、官方解释
Protocol Buffers 是一种语言无关、平台无关、可扩展的序列化结构数据的方法,它可用于(数据)通信协议、数据存储等。
Protocol Buffers 是一种灵活,高效,自动化机制的结构数据序列化方法-可类比 XML,但是比 XML 更小(3 ~ 10倍)、更快(20 ~ 100倍)、更为简单。
你可以定义数据的结构,然后使用特殊生成的源代码轻松的在各种数据流中使用各种语言进行编写和读取结构数据。你甚至可以更新数据结构,而不破坏由旧数据结构编译的已部署程序
3、如何更快理解 protobuf ?
1、下载编译器
选择自己需要的版本下载即可,我这里下载的是 win64 3.15.3,下载之后进行解压
2、配置环境变量
path 系统变量中增加配置,也就是你的解压文件位置
D:Developerprotoc-3.15.3-win64bin
3、检查是否配置成功
cmd 之后,输入
protoc
查看版本
protoc --version
这样我们就可以在命令行去生成 proto 文件了,但是命令行太不方便,我就没有尝试了,直接上手 idea。
1、idea 安装 protobuf 相关插件
安装这两个插件即可,安装之后重启 idea
一个是根据 .proto 文件来生成 proto 对象
一个是使得 idea 支持我们的 proto 语法,例如关键词高亮等功能
2、检查是否安装成功
重启之后我们可以在工具栏看到这两个选项
一个是配置全局的 protobuf
一个是生成所有的 protobuf 文件
3、配置全局 protobuf
protoc path :我们下载的 protobuf 编辑器的位置,在 bin 目录下有一个 .exe 文件
quick gen : 对应的语言,这里选择伟大的 Java
创建一个简单的 springboot 项目或者 maven 项目
引入相关依赖,这里的依赖版本和我们的编辑器一个版本就好
maven 版本
gradle 版本
1、编写 .proto 文件
在 resource 资源文件夹下面创建一个 proto 文件夹
新建一个 demo.proto
内容如下
如果发现有这种红色标识,千万不要以为是我们 Java 里面的异常错误,这只是 proto 的语法高亮(逼死强迫症,我当时也纠结了半天,是不是我写错了)
2、生成 proto 对象
选中我们新建的.proto 文件,右键,选择框中的选项就可以生成了
尽管我们设置了生成目录,还是会生成到当前这个文件夹下,可自行研究下具体原因,我们复制到 java 文件夹下
生成后的 proto 文件如下
3、protobuf 序列化和反序列化
运行之后
至此,一个简单的 protobuf 的就写好了。
1、protobuf 有没有数据类型?protobuf 怎么与 Java 数据类型对应?
2、protobuf 怎么运用到我们的项目当中?复杂的 List、Map、内嵌对象等等怎么实现?
3、protobuf 怎么和 JSON 互相转换?
4、protobuf 与 Java 对象互转
版权声明:
本文来源网络,所有图片文章版权属于原作者,如有侵权,联系删除。
本文网址:https://www.bianchenghao6.com/java-jiao-cheng/14748.html