学习笔记-Protobuf快速入门
source link: https://mikeygithub.github.io/2021/11/25/yuque/nh44si/
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
学习笔记-P_
380 字
5 分钟
8 次
protocol 是谷歌的语言中立、平台中立、可扩展的结构化数据序列化机制——比 XML,但更小、更快、更简单。您可以一次定义数据的结构化方式,然后可以使用特殊生成的源代码轻松地使用各种语言在各种数据流中写入和读取结构化数据。
1.下载 protoc:下载地址
选择对应的版本,下载后将 bin 目录加入系统环境变量中
2.编写.protoc 文件
syntax = "proto2";
option java_generic_services = true;
option java_package = "io.demo.proto";
option java_outer_classname = "ProtoUser";
message User {
required int32 id = 1;
optional string name = 2;
optional string mail = 3;
}
3.生成 Java 文件
protoc --java_out=../java user.proto
4.引入依赖
<dependencies>
<!-- https://mvnrepository.com/artifact/com.google.protobuf/protobuf-java -->
<dependency>
<groupId>com.google.protobuf</groupId>
<artifactId>protobuf-java</artifactId>
<version>3.17.3</version>
</dependency>
</dependencies>
5.测试序列化和发序列化
public class UserTest {
public static void main(String[] args) {
ProtoUser.User user = ProtoUser.User.newBuilder()
.setId(1)
.setName("麦奇")
.setMail("[email protected]").build();
System.out.println(user);
byte[] bytes = user.toByteArray();
try {
ProtoUser.User parseFrom = ProtoUser.User.parseFrom(bytes);
System.out.println(parseFrom);
}catch (Exception e){
e.printStackTrace();
}
}
}
protoman:一款 http 上 protobuf 的 API 客户端
官网:http://www.electronjs.org/apps/protoman
添加对应的 proto 文件即可进行发送请求,其 Content-Type 设置为 application/x-protobuf
java 教程:https://developers.google.com/protocol-buffers/docs/javatutorial
java 代码生成:https://developers.google.com/protocol-buffers/docs/reference/java-generated
Recommend
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK