protobuf
Google Protocol Buffer(简称Protobuf)是 Google开发的一种跨语言跨平台,轻量高效的序列化数据结构。
广泛用于服务器间通信以及存档存储磁盘上的数据。
一个入门的例子是
1 | message Person { |
1. 安装
命令行基本使用:
1 | protoc --proto_path=. --java_out=../../ hello.proto |
其中,--proto_path
可以简写为-I
为啥用老版本?新的22RC版本有bug啊:
[Java Compile Error on parseUnknownField](https://github.com/protocolbuffers/protobuf/issues/10695)
如果是IDEA中使用,主要是通过插件调用本地安装的protoc来实现,或者通过org.xolstice提供的maven插件。个人感觉在初期学习的话,直接使用本地安装的protoc更简单明了,后期在项目中集成的话考虑不依赖本地的maven插件。
2. 基本用法
推荐prot3
https://protobuf.dev/programming-guides/proto3/
3. grpc
grpc的代码生成依赖于protoc-gen-grpc-java插件
插件下载地址
主要是添加两项参数--plugin=protoc-gen-grpc-java=
和--grpc-java_out=
用法:
1 | protoc -I=. --plugin=protoc-gen-grpc-java=D:\Tools\protoc-3.20.1-rc-1-win64\bin\grpc-java.exe --java_out=../../ --grpc-java_out=../../ hello.proto |