概念
Protocol buffers are a flexible, efficient, automated mechanism for serializing structured data – think XML, but smaller, faster, and simpler
简单的说, Protobuf3是类似json,xml的数据交换协议,但是它比它们传输的数据更小,传输的速度更快; 跨语言交互,支持大部分主流编程语言
Demo
Message
Protobuf3通过proto文件定义交互的对象,基本的数据结构叫做Message。 以下是本次使用的第一个demo
// 如果使用此注释,则使用proto3; 否则使用proto2
syntax = "proto3";
// 生成类的包名
option java_package = "com.hry.spring.proto.simple";
//生成的数据访问类的类名,如果没有指定此值,则生成的类名为proto文件名的驼峰命名方法
option java_outer_classname = "FirstDemo";
message Demo {
int32 id = 1;
string name = 2;
string email = 3;
repeated int32 mylist = 4; // List列表
}
repeated : 在java中表示这是一个List列表
int32, string 分别对应java中的int, String
生成Java类
定义后proto,则可以通过官方的工具生成类 protoc-3.0.0-win32.zip
有两种方式生成java类
方法一通过cmd命令:
protoc参数的意义见下方的ProtoGenerateClass 类注释
D:/tool/protoc/protoc-3.0.0-win32/bin/protoc.exe -I=D:/project/git/spring_boot/protobuf --java_out=d:/tmp D:/project/git\spring_boot/protobuf/src/main/resources/com/hry/spring/proto/simple/*.proto
方法二通过Java类来实现
封装调用window命令的类