Protobuf入门

ProtoBuf入门体验之小demo 由于最近的项目开发要用到ProtoBuf,所以在这开一贴说说自己写的小demo。这款Google开发的开源项目相对于xml来说,它的优点主要有以下几点: (1)性能好/效率高; (2) 具有代码生成机制。 (3)支持向前/向后兼容。 (4)能够支持多种语言。 当然,“金无赤金,人无完人”,protobuf也是有缺点的。比如它采用二进制编码导致可读性变差。 在进行创建Demo之... 阅读详情

Protobuf入门
Protobuf是一个灵活,高效,结构化的数据序列化框架,相比于XML等传统的序列化工具,它更小,更快,更简单。Protobuf支持数据结构化一次可以到处使用,甚至跨语言使用(go语言和java语言)。
Protobuf开发环境搭建
1.首先下载protobuf的最新的windows版本,网址如下:
https://github.com/protocolbuffers/protobuf/releases
在这里插入图片描述
2.解压:
protoc-3.6.1-win32.zip
在这里插入图片描述
3.配置环境变量
路径名放在windows环境变量下的path下
在这里插入图片描述
4.生成代码
protoc.exe工具重要根据.proto文件生产代码
例子如下:
定义SubscribeReq.proto和SubscribeResp.proto数据文件
SubscribeReq.proto
package netty;
option java_package = “com.wf.protobuf”;
option java_outer_classname = “SubscribeReqProto”;

message SubscribeReq {
required int32 subReqID =1;
required string userName = 2;
required string email = 3;
required string address = 4;
}

SubscribeResp.proto
package netty;
option java_package = “com.wf.protobuf”;
option java_outer_classname = “SubscribeRespProto”;

message SubscribeReq {
required int32 subReqID =1;
required string respCode = 2;
required string desc = 3;
}
通过protoc.exe命令生成java代码:
在所使用的proto文件路径下打开cmd窗口执行以下命令
E:\own\netty\netty-demo\src\main\java\com\wf\protobuf\目录下执行
protoc --java_out=./ ./SubscribeReq.proto
在这里插入图片描述
将生产的pojo代码SubscribeReq.java和SubscribeResp.java复制到对应的工程目录
在这里插入图片描述
5.在pom.xml文件上添加protobuf依赖
在这里插入图片描述
到此为止,Protobuf开发环境搭建完毕

从入门到精通——ProtoBuf 本章介绍了什么是protobuf、以及protobuf的作用、如何安装protobuf、proto3的语法等内容 阅读详情

相关推荐

protobuf入门到高手教程

protobuf入门教程 全称Protocol Buffers ,简称GPB、PB  ,是QQ等IM采用的协议,比XML、XMPP(环信)、JSON、结构体等所有传输效果都高的一种传输协议,由谷歌发明,其效率一般是XML XMPP的20倍以上,JSON的10倍以上,是一种游戏中普遍采用的IM消息协议,所以你非常有必要认真读一下本博文的入门教程,并运行作

targetcloud 1万+

protobuf的环境搭建及使用

(2)google::protobuf::Reflection 反射对象, 通过它 + FieldDescriptor, 能set/get filed对象的值;2: 每一个Message对象,可以通过统一的对象工厂来构建, 根据协议生成了代码后,只要传入Message的名字,就能构建出对应的Message的类的实例;(1)google::protobuf::Descriptor 描述对象,是Message所有Filed的一个集合,它又包含了。g: 在使用自动生成的代码反序列化(解码),生成数据对象使用;

小星AI 1354

SQL注入绕过information_schema:实战技法与替代路径详解

SQL注入是Web安全领域的核心漏洞类型,其原理是通过构造恶意SQL语句,干扰应用程序与数据库的正常交互逻辑,从而窃取或篡改数据。在渗透测试与CTF竞赛中,绕过常见防护措施是提升技术能力的关键。当标准的信息收集方式受阻时,例如无法访问information_schema数据库,攻击者需要掌握替代的元数据获取方法。这些技术价值在于模拟真实环境中日益严密的防御体系,锻炼在受限条件下的系统性信息收集思维。典型的应用场景包括存在WAF过滤、权限限制或编码干扰的实战环境。本文将围绕SQL注入这一核心,深入探讨如何利用

weixin_33980459的博客 430

Unity使用protobuf-net实现的网络框架

设计思想是把协议号和协议类型分别存储起来,当我们向服务端发送协议的时候,会自动根据协议类型加上协议号,并用protobuf序列化后发给服务端,客户端收到服务端发回来的协议后,会根据协议号,用protobuf根按协议类型自动反序列化成相应的对象,并调用相应的回调方法。 首先到https://github.com/mgravell/protobuf-net下载protobuf-net源码,把prot

l_jinxiong的专栏 9231

Unity游戏开发架构选择:ECS与OOP的性能、场景与实战对比

在游戏开发中,架构选择直接影响项目的性能与可维护性。面向对象编程(OOP)以对象为中心封装数据与行为,符合人类直觉,便于快速原型开发。然而,随着实体数量激增,其内存访问随机、缓存不友好的问题会引发性能瓶颈。实体组件系统(ECS)则采用数据导向设计,将纯数据组件与逻辑系统分离,通过连续内存布局和并行处理,极大提升了CPU缓存命中率与多核利用率。这种架构尤其适用于需要处理大规模单位移动、状态效果计算等模拟密集型场景,能有效实现数据局部性和零GC分配。对于Unity开发者而言,理解ECS在数据驱动、并行化方面的优

weixin_33981932的博客 321

EDA环境下的LSF进阶调优:如何为Cadence/VCS等工具正确配置cgroups与daemon starter

本文深入探讨了在EDA环境中如何为Cadence/VCS等工具正确配置LSF的cgroups与daemon starter,解决资源分配与特殊应用兼容性问题。通过详细解析cgroups技术、daemon starter配置及混合资源管理策略,帮助提升LSF集群的效率和稳定性,特别适用于高性能计算和芯片设计场景。

weixin_33724046的博客 461

一个小台灯

1、主要硬件,STM32,ESP8266;2、3D打印的外壳,淘宝金属灯杆、灯罩、配重块;3、喷涂了白色油漆外观,颜值8/10;4、小程序+web后台。5、台灯mqtt连接到服务器。服务器使用mosquitto,搭配python的django转发台灯的状态和控制给微信小程序。用户使用微信小程序和台灯交互;6、一个电容触摸开关;7、提供三个USB接口的USB HUB;8、共3块PCB;9、添加protobuf协议;

qq_44179528的博客 1102

自适应滤波算法综述

自适应滤波算法综述

xdzhujy的博客 5万+

protobuf 三个关键字required、optional、repeated的理解

required关键字 顾名思义,就是必须的意思,数据发送方和接收方都必须处理这个字段,不然还怎么通讯呢 optional关键字 字面意思是可选的意思,具体protobuf里面怎么处理这个字段呢,就是protobuf处理的时候另外加了一个bool的变量,用来标记这个optional字段是否有值,发送方在发送的时候,如果这个字段有值,那么就给bool变量标记为true,否则就标记为false,接收方...

生于忧患,死于安乐 7万+

UE4 Instanced Mesh 半透明渲染顺序不对解决

以绿色方块为Instanced Mesh为例。 正确的半透应该是这样的: 这是一般蓝图Actor方块,其半透是正常的。 然而Instanced Mesh因为过多,UE4不给你缓存正确的渲染顺序。所以,在不改代码的情况下,想解决Instanced Mesh半透问题,是不可能的。不正确的半透如下: 注意到错误发生在Instanced Mesh的方块与方块之间。 但我就是要解决,...

qq_41524721的博客 5569

044、Edge Impulse的音频分类实战

上周调试一块STM32WBA52开发板,板载PDM麦克风死活采不到有效数据。示波器怼上去,时钟线波形漂亮得像教科书,数据线却像心电图——全是毛刺。折腾半天发现是电源纹波干扰,给麦克风单独加了个LC滤波,世界清净了。这种坑,做音频分类的嵌入式工程师迟早要踩一遍。

2401_88858637的博客 56

【Protobuf】proto通用二进制文件的生成与解析(C++/Python,附完整源码)

protobuf是Google开源的一个跨平台的结构化数据存储格式。可用于通讯协议、数据存储等领域的语言无关、平台无关、可扩展的序列化结构数据格式。 前言 说起proto的用法,可能最熟悉的莫过于以下两句: obj.ParseFromString(data) data = obj.SerializeToString() 其中,obj是proto中message的实例对象,data是序列化之后的...

Yngz_Miao的博客 2万+

168、OIS光学防抖系统设计:陀螺仪标定、音圈马达驱动与滚珠式/悬丝式结构选型

本文总结了OIS光学防抖系统设计中的关键问题与解决方案。作者通过实际案例指出,陀螺仪标定需重视零偏、灵敏度和温度补偿问题,音圈马达驱动需采用电流环控制并优化相位补偿。在机械结构选型方面,滚珠式适合大角度补偿但存在回差问题,悬丝式精度高但受重力影响,需根据应用场景选择。系统联调建议从开环到闭环逐步验证,注意陀螺仪与驱动频率匹配。最后给出5条经验建议:关注陀螺仪信噪比而非分辨率、预留标定余量、重视机械结构公差、配备专业调试工具、协调OIS与电子防抖的分工配合。文章强调OIS调试需针对不同模组特性进行反复测试与标

zzfmlxs的博客 46

protobuf快速入门

最近在看cartographer的源码,它其中用到了Google自家的protobuf工具(果然大厂2333)。找到了两篇比较好的protobuf快速入门教程,虽然文章有点老了,问题不大,此处贴出来mark一下 https://www.ibm.com/developerworks/cn/linux/l-cn-gpb/index.html http://www.cnblogs.com/dkblo...

一步一脚印 1422

【软件测试】- 公有云、私有云、混合云简介以及如何在公有云与私有云上分别搭建测试环境

公有云、私有云以及混合云是目前云计算领域的三种主要模式。它们之间的区别主要在于部署方式、数据访问和管理控制的不同。在阿里云或腾讯云上使用 Kubernetes 和 Docker 搭建测试环境可以提供高度的可伸缩性和灵活性。这样的环境非常适合于需要在多种配置和条件下进行测试的复杂应用。通过云服务提供的工具和服务,可以轻松管理和监控整个测试过程。在云服务上搭建测试环境涉及选择合适的云提供商、配置云资源、安装和设置所需软件等步骤。### 1. 选择云服务提供商。

weixin_46453070的博客 2345

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

314-protobuf入门一

protobuf入门一 protobuf下载安装 1、下载 protoBuf: 也可从xxx文件拷贝protobuf1.zip(最新) git clone https://github.com/protocolbuffers/protobuf.git 2、或者直接将压缩包拖入后解压 也可以图形化界面手动解压 unzip protobuf.zip 3、安装...

Lich Howger 175

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

ProtoBuf入门基础

Protocol Buffers 是 Google 的一种语言无关、平台无关、可扩展的序列化结构数据的方法,它可用于(数据)通信协议、数据存储等。 Protocol Buffers 类比于 XML,是一种灵活,高效,自动化机制的结构数据序列化方法,但是比 XML 更小、更快、更为简单。 你可以定义数据的结构,然后使用特殊生成的源代码轻松的在各种数据流中使用各种语言进行编写和读取结构数据。你甚至可以更新数据结构,而不破坏由旧数据结构编译的已部署程序。

宁清的博客 2421

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

Protobuf入门指南

Protocol Buffers(Protobuf)是Google开发的高效数据序列化工具,相比JSON/XML更紧凑快速。它支持跨语言使用,通过.proto文件定义强类型数据结构,并自动生成C++等语言的序列化代码。Protobuf支持嵌套消息、枚举、map等复杂类型,提供向后兼容性。示例展示了如何定义学生信息结构,包括基本字段、嵌套课程数据和年级枚举,并生成对应的C++类及访问方法。Protobuf特别适合网络传输和分布式系统,广泛应用于gRPC等场景。

weixin_45481496的博客 1078

protobuf java_protobuf基于java入门

protobuf基于java入门1. 编写protobuf文件——person.protopackage protobuf;option java_package="com.sean.person";option java_outer_classname = "PersonEntity";message Person{required int32 id = 1;required string na...

weixin_42508290的博客 157

java protobuf开发入门

java protobuf开发入门

handsomestWei的博客 449

protobuf c 入门

protobuf c 入门

yrryyff的博客 554

Java 中使用 protobuf :入门基础篇,看这篇就够了!

一、什么是 protobuf ? 1、protobuf 来源? Protocal Buffers(简称protobuf)是谷歌的一项技术,用于结构化的数据序列化、反序列化。 2、官方解释 Protocol Buffers 是一种语言无关、平台无关、可扩展的序列化结构数据的方法,它可用于(数据)通信协议、数据存储等。 Protocol Buffers 是一种灵活,高效,自动化机制的结构数据序列化方法-可类比 XML,但是比 XML 更小(3 ~ 10倍)、更快(20 ~ 100倍)、更为简单。 你可以定义数据

wxw1997a的博客 5万+

protobuf的安装和入门

protobuf的安装和入门 mac环境下protobuf的安装 1.安装google protocol buffer 编译器,点击这里下载合适的压缩包。 2.安装golang protobuf,点击这里下载压缩包。 3.将下载后的protobuf编译器解压后,将bin目录下的可执行文件protoc复制到$GOPATH/bin目录下。 4.解压golang的protobuf,将整个proto...

梅雨心情的博客 590

protobuf入门

protobuf全称Protocol Buffers,是google推出的一种高效,快捷的数据交换格式,和XML,Thrift一样,都是一种数据交换协议(当然thrift还提供rpc的功能)。protobuf相对与xml结构化的文本数据格式,它是一种二进制的数据格式,具有更高的传输,打包和解包效率,这也是为什么protobuf很受欢迎的原因。 protobuf通过自己的编译器,对协议文件进行

anonymalias的专栏 6781

【Protobuf】Protobuf入门

文章目录Protobuf入门简介序列化和反序列化XML、JSON和ProtoBufProtoBuf APIDemo Protobuf入门 简介 Protobuf全称是Google Protocol Buffer,是一种高效轻便的结构化数据存储方式,可用于(数据)通信协议、数据存储等。 也可以理解为结构化数据的序列化方法,可简单类比为XML(这里主要是指在数据通信和数据存储这些应用场景中序列化方面的类比,但个人认为XML作为一种扩展标记语言和Protobuf还是有着本质区别的),其具有以下特点: 语言无关

Slimshady的博客 436
上一篇: spring-事物源码分析
下一篇: Spring5源码解析-搭建环境
wflovejava
博客等级 码龄11年 23粉丝 46原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值