《Spring Boot 3实战案例合集》现已囊括超过80篇精选实战文章,并且此合集承诺将永久持续更新,为您带来最前沿的技术资讯与实践经验。欢迎积极订阅,享受不断升级的知识盛宴!订阅用户将特别获赠合集内所有文章的最终版MD文档(详尽学习笔记),以及完整的项目源码,助您在学习道路上畅通无阻。
【重磅发布】《Spring Boot 3实战案例锦集》PDF电子书现已出炉!
🎉🎉我们精心打造的《Spring Boot 3实战案例锦集》PDF电子书现已正式完成,目前已经有80个案例,后续还将继续更新。
📚📚订阅获取:
只需订阅我们的合集《点我订阅》,即可立即私信我们获取这本珍贵的电子书。轻松拥有Spring Boot 3的实战宝典!
💪💪永久更新承诺:
我们郑重承诺,所有订阅合集的粉丝都将享受永久免费的后续更新服务。这意味着,随着技术的不断发展和Spring Boot 3的深入应用,我们的电子书也将持续更新,确保您始终掌握最前沿、最实用的技术知识。
🔥🔥精彩内容不容错过:
《Spring Boot 3实战案例锦集》汇聚了众多精心挑选的实战案例,旨在帮助您快速掌握Spring Boot 3的核心技术和实战技巧。无论您是初学者还是有一定经验的开发者,都能从中受益匪浅。
💌💌如何获取:
请立即订阅我们的合集《点我订阅》,并通过私信联系我们,我们将第一时间将电子书发送给您。
环境:SpringBoot3.2.5
1. 简介
当系统需要高效的数据传输时,Protobuf是一个理想的选择。其采用二进制编码,相比JSON和XML等文本格式,能显著减少数据传输的体积,从而提高网络传输速度。
Protobuf支持跨平台、多语言,使得在不同系统和编程语言之间传输数据时更加便捷。它提供了多种语言的库,可以轻松地实现数据共享。
当系统需要良好的扩展性和兼容性时,Protobuf就非常的合适。它允许在不破坏现有数据结构的情况下扩展和修改数据格式,并支持向后和向前兼容,这对于长期维护和升级系统非常有用。
1.1 Protobuf基础:Java
定义协议格式
这里我们假设你要为Person对象创建一个消息格式,我们需要进行以下的步骤:
创建*.proto文件
定义需要序列化的数据结构,并为每一个属性定义名称和类型
使用protoc编译器,通过定义的*.proto文件生成相应的java文件
以上是我们使用protobuf,从编写proto文件到编译生成java文件的整个过程。接下来,我们将详细的介绍proto文件的编写及相关语法。
如下是定义了一个Person的proto文件,该文件描述了我们的数据格式都有哪些信息及类型。
syntax = "proto2";
package test;
option java_multiple_files = true;
option java_package = "com.pack.protobuf.protos";
option java_outer_classname = "PersonProtos";
message PersonMessage {
optional int64 id = 2 [default = 0];
optional string name = 1;
optional string email = 3;
}
message PersonMessageList {
repeated PersonMessage persons = 1;
}
说明:
syntax:定义了Protobuf编译器(protoc)将使用哪个版本的语法来解析文件;proto2是早期的版本,如果为了兼容性你可以使用proto2的版本(目前最新的是proto3)。
package:定义了一个命名空间test,用于区分相同的消息命名的消息类型。与java中的package一样,在相同的包中指定定义一个Person类,要定义多个就必须声明多个package。如果这里没有定义java_package,那么最终生成的代码将在test文件夹下。
java_multiple_files:是一个选项(option);当设置为true时,如果proto文件中声明了多个消息,那么每一个消息都会生成独立的文件,否则都将在一个文件中生成。默认值为false。