当前位置: 首页 > news >正文

国内商城网站建设公司注册资金多少合适

国内商城网站建设,公司注册资金多少合适,用vs2010做购物网站,网站跳转链接生成目录 Protobuf概述 什么是Protobuf 为什么要使用Protobuf Protobuf实战 环境配置 创建文件 解析/封装数据 附录 AQin.proto 完整代码 Protobuf概述 什么是Protobuf Protobuf#xff08;Protocol Buffers#xff09;协议#x1f609; Protobuf 是一种由 Google 开…目录 Protobuf概述 什么是Protobuf 为什么要使用Protobuf Protobuf实战 环境配置 创建文件 解析/封装数据 附录 AQin.proto 完整代码 Protobuf概述 什么是Protobuf ProtobufProtocol Buffers协议 Protobuf 是一种由 Google 开发的二进制序列化格式和相关的技术它用于高效地序列化和反序列化结构化数据通常用于网络通信、数据存储等场景 为什么要使用Protobuf 其实 Protobuf 在许多领域都得到了广泛应用特别是在分布式系统、RPCRemote Procedure Call框架和数据存储中它提供了一种高效、简洁和可扩展的方式来序列化和交换数据Protobuf 的主要优点包括 高效性Protobuf 序列化后的二进制数据通常比其他序列化格式比如超级常用的JSON更小并且序列化和反序列化的速度更快这对于性能敏感的应用非常有益。简洁性Protobuf 使用一种定义消息格式的语法它允许定义字段类型、顺序和规则消息结构更加清晰和简洁版本兼容性Protobuf 支持向前和向后兼容的版本控制使得在消息格式发生变化时可以更容易地处理不同版本的通信。语言无关性Protobuf 定义的消息格式可以在多种编程语言中使用这有助于跨语言的通信和数据交换截至本文发布目前官方支持的有C/C#/Dart/Go/Java/Kotlin/python自动生成代码Protobuf 通常与相应的工具一起使用可以自动生成代码包括序列化/反序列化代码和相关的类减少了手动编写代码的工作量提高效率后面的里有保姆级操作指南 Protobuf实战 环境配置 首先我们需要在 pom.xml 文件中添加如下依赖 dependencygroupIdcom.google.protobuf/groupIdartifactIdprotobuf-java/artifactIdversion3.20.3/version /dependencydependencygroupIdcom.google.protobuf/groupIdartifactIdprotobuf-java-util/artifactIdversion3.20.3/version /dependency 接着如果你希望.proto文件可以被idea识别的话就需要安装 Protobuf 插件非必要 创建文件 然后我们创建一个.proto文件如下图完整代码在文末附录 其中 syntax proto3 表示协议版本option java_package com.aqin.protobuf 表示生成的类所处的层级option java_multiple_files true 表示需要將生成的类拆分为多个false 的话就是不需要MyRequest 和 Header 是消息结构。 进入到文件AQin.proto所在目录下执行如下代码 protoc -I./ --java_out./ ./AQin.proto 参数说明 -I 用于指定 .proto 文件所在的路径也可以用-proto_path代替--java_out 用于指定生成的 java 文件的路径./AQin.proto 就是需要编译的.proto文件 有一点需要注意的是这三个路径要使用相对路径就都使用相对路径要使用绝对路径就都使用绝对路径不要混着用执行完成后就会在指定的位置生成指定的文件如下图 然后我们就可以通过生成的Java类来对接收到的信息进行解析或者封装数据进对象进行发送 解析/封装数据 常用API newBuilder()用于创建Java类通过.proto文件生成的并返回该对象 setXXX()设置属性值getXXX()获取属性值 byte[] toByteArray()用于序列化信息并返回一个字节数组writeTo(OutputStream output): 序列化信息并写入一个输出流parseFrom(byte[] data)解析传入的字节数组一般用于接收数据parseFrom(InputStream input)解析传入的输入流一般用于接收数据 那我们上面的AQin.proto举个 MyInfo myInfo MyInfo.newBuilder().setName(Zhangsan); Body body Body.newBuilder().setMyInfo(myInfo).build(); ByteBuffer byteBuffer ByteBuffer.allocate(body.toByteArray().length); body.writeTo(CodedOutputStream.newInstance(byteBuffer)); //然后就可以发送了 附录 AQin.proto 完整代码 //协议版本 syntax proto3; //生成的类所处的层级 option java_package com.aqin.protobuf;//是否需要將生成的类拆分为多个 option java_multiple_files true;// request message MyRequest{Header header 1;Body body 2; }//Header message Header {uint32 RequestId 1;int64 Timestamp 2; }//Body message Body {MyInfo Info 1; //消息ServiceResult serviceResult 2; //结果反馈 }message MyInfo{string name 1;string age 2; }message ServiceResult{uint32 ErrorCode 1;string ErrorMsg 2; }
http://www.pierceye.com/news/821604/

相关文章:

  • 石家庄开发网站建设263企业邮箱登录邮箱
  • 青岛公司建设网站电子商务网站开发技术论文
  • 龙华网站的建设建设网站教程视频视频
  • 威海高区建设局网站品牌网站建设多少钱
  • 网站php网站空间新乡河南网站建设
  • 你第一个物流网站建设方案信诚网络公司网站
  • 企业建站什么网站好wordpress管理员后台
  • 南京网站开发价格两个wordpress共用一个数据库
  • 番禺制作网站平台柳城网站制作
  • 网站建设相关视频教程网页设计布局有哪几种方法
  • 能接做网站的活的网站上海建网站方案
  • 免费网站软件app大全飘雪影院手机免费观看免费
  • 怎么做类似淘宝的网站石家庄网络开发公司
  • 专业SEO教程网站广东省住房与城乡建设部网站
  • 360免费建站为什么注册不了雨灿网站建设
  • 益阳市建设局网站在家来料加工
  • 邵阳网站设计宠物网站 html模板
  • 网站域名以co与com有什么不同18款禁用黄a免费
  • 农村电商网站建设方案wordpress官网密码错误
  • 婚庆公司网站建设doc高端网站建设推广
  • 做房地产一级市场的看什么网站网站建建设公司和网络自建
  • 搞一个网站要多少钱长治做网站哪家好
  • 德州口碑好的网站制作公司网站运营托管咨询
  • 东阳网站建设价格广州最好的网站设计
  • 襄垣网站建设宝塔面板怎么搭建网站
  • 电影网站源码access广州网站建设排名一览表
  • 做论坛网站多少钱企业做网站有用吗天涯
  • 做网站价格多少钱网站设计培训课程
  • 做网站找什么公司好淘宝客网站可以做百度推广
  • 北京网站建设首选石榴汇企业vi设计一整套