spring boot 引入Protocol Buffer

option java_outer_classname  : 定义类名,不声明的话它将通过将文件名转换为camel case来生成。例如,默认情况下,“my_proto.proto”将使用“MyProto”作为外部类名。

syntax : 指定语法,指定了语法格式为proto2或proto3,即protobuf 2的语法,默认也是使用proto2的语法。

1 *.proto文件中数据类型可以分为两大类:

复合数据类型 + 标准数据类型

复合数据类型包括:枚举和message类型

标准数据类型包含:

整型 : int32

浮点 : float,double

字符串 : string

布尔: bool

2 数据类型前面修饰词:

required(必选字段): 必须赋值,不能为空,否则该条message会被认为是“uninitialized”。build一个“uninitialized” message会抛出一个RuntimeException异常,解析一条“uninitialized” message会抛出一条IOException异常。除此之外,“required”字段跟“optional”字段并无差别。

optional(可选字段):字段可以赋值,也可以不赋值。假如没有赋值的话,会被赋上默认值。

repeated(可重复字段): 该字段可以重复任意次数,包括0次。重复数据的顺序将会保存 需要zi料+ 绿色徽【vip1024b】

在protocol buffer中,将这个字段想象成一个可以自动设置size的数组就可以了。

3.每个字段要给数字:

该Number是用来标记该字段在序列化后的二进制数据中所在的field,每个字段的Number在message内部都是独一无二的。也不能进行改变,否则数据就不能正确的解包。

  • 安装protoc(win版)

1.下载protobuf

https://github.com/google/protobuf/releases

选择protoc-xxx-win32.zip下载

2.将解压出来的protoc.exe放在一全英文路径下,并把其路径名放在windows环境变量下的path下,同时添加proto_path,值为protoc.exe的路径

3.在所使用的proto文件路径下打开cmd窗口执行以下命令

protoc -I=源地址 --java_out=目标地址  源地址/xxx.proto

  • 编译.protoc文件

在protoc.exe所在目录执行:

.\protoc --java_out=.\ XXX.proto #注意.\与XXX.proto 中间有空格

  • 引入依赖:

com.google.protobuf

protobuf-java

3.6.1

最后

针对最近很多人都在面试,我这边也整理了相当多的面试专题资料,也有其他大厂的面经。希望可以帮助到大家。

最新整理面试题
在这里插入图片描述

上述的面试题答案都整理成文档笔记。也还整理了一些面试资料&最新2021收集的一些大厂的面试真题

最新整理电子书

在这里插入图片描述

最新整理大厂面试文档

在这里插入图片描述

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
整理电子书

[外链图片转存中…(img-11dYnkNB-1710367400934)]

最新整理大厂面试文档

[外链图片转存中…(img-AQCrv82X-1710367400935)]

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。

  • 21
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值