spring-boot整合protobuf

简介: protobuf区是Google的语言中立,平台中立,可扩展的机制,用于序列化结构化数据 - 想想XML,但更小,更快,更简单。您可以定义数据的结构化结构,然后使用特殊生成的源代码轻松地将结构化数据写入和读取各种数据流,并使用各种语言。

简介:
protobuf是Google的语言中立,平台中立,可扩展的机制,用于序列化结构化数据 - 想想XML,但更小,更快,更简单。您可以定义数据的结构化结构,然后使用特殊生成的源代码轻松地将结构化数据写入和读取各种数据流,并使用各种语言。
1.在项目中导入依赖

  <dependency>
        <groupId>com.google.protobuf</groupId>
      <artifactId>protobuf-java</artifactId>
      <version>3.8.0</version>
</dependency>

2.创建ReturnVO. proto文件

syntax = "proto3";        // PB协议版本
message ReturnVO{
    string code = 1;             // 支付相关的字段信息
      string message = 2;          // optional 为可选参数
      string data = 3;          // required为必填参数
 }

3.使用idea进行生成Java文件ReturnVOProto.java
idea实现protobuf的.proto文件编译成.java文件教程
4.使用protobuf

    @Test
    public void contextLoads() {
        System.out.println("===== 构建一个returnVO模型开始 =====");
        ReturnVOProto.ReturnVO.Builder builder = ReturnVOProto.ReturnVO.newBuilder();
        builder.setCode("200");
        builder.setData("OK");
        builder.setMessage("GO");


        ReturnVOProto.ReturnVO returnVO = builder.build();
        System.out.println(returnVO.toString());
        System.out.println("===== 构建returnVO模型结束 =====");

        System.out.println("===== returnVO Byte 开始=====");
        for(byte b : returnVO.toByteArray()){
            System.out.print(b);
        }
        System.out.println("\n" + "returnVO" + returnVO.toByteString().size());
        System.out.println("===== returnVO Byte 结束 =====");

        System.out.println("===== returnVO 反序列化生成对象开始 =====");
        ReturnVOProto.ReturnVO returnVO1 = null;
        try {
            returnVO1 =ReturnVOProto.ReturnVO.parseFrom(returnVO.toByteArray());
        } catch (InvalidProtocolBufferException e) {
            e.printStackTrace();
        }
        System.out.print(returnVO1.toString());
        System.out.println("===== returnVO 反序列化生成对象结束 =====");

    }

5.结果

===== 构建一个returnVO模型开始 =====
code: "200"
message: "GO"
data: "OK"

===== 构建returnVO模型结束 =====
===== returnVO Byte 开始=====
10350484818271792627975
returnVO13
===== returnVO Byte 结束 =====
===== returnVO 反序列化生成对象开始 =====
code: "200"
message: "GO"
data: "OK"
===== returnVO 反序列化生成对象结束 =====
相关文章
|
3月前
|
JavaScript 安全 Java
Spring Boot中的版本兼容性处理
Spring Boot中的版本兼容性处理
|
5月前
|
Java Maven Spring
快速搭建spring boot 的 Swagger
快速搭建spring boot 的 Swagger
39 3
|
5月前
|
Java Spring
spring boot 打 jar 包
spring boot 打 jar 包
35 0
|
10月前
|
Java Maven
编写一个spring-boot-starter-fastjson
编写一个spring-boot-starter-fastjson
60 0
|
JSON Java API
Spring Boot之Jackson快速入门,你必须得会!
在上一期《SpringBoot之Jackson配置全局时间日期格式》文中提到Jackson,了解到有很多小伙伴对它很感兴趣;顾这一期,我就重点带着大家以最基础的教学方式领大家入门,废话不多说,咱们这就开始。
|
数据可视化 JavaScript 前端开发
Spring Boot集成Swagger2
你好看官,里面请!今天笔者讲的是Spring Boot集成Swagger2。不懂或者觉得我写的有问题可以在评论区留言,我看到会及时回复。 注意:本文仅用于学习参考,不可用于商业用途,如需转载请跟我联系。
231 1
|
消息中间件 NoSQL Java
SpringBoot 之Spring Boot Starter依赖包及作用
如果有新的依赖需要补充,可以在后台留言哦
371 0
|
Java 数据库连接 Maven
SpringBoot——自定义一个spring-boot-starter包
SpringBoot——自定义一个spring-boot-starter包
535 0
SpringBoot——自定义一个spring-boot-starter包
|
数据可视化 Java API
spring boot 下swagger2 的使用
Swagger 是一个规范和完整的框架,用于生成、描述、调用和可视化 RESTful 风格的 Web 服务。总体目标是使客户端和文件系统作为服务器以同样的速度来更新。文件的方法,参数和模型紧密集成到服务器端的代码,允许API来始终保持同步。 swagger 官方Demo供参考 https://petstore.swagger.io/ swagger注解 swagger通过注解表明该接口会生成文档,包括接口名、请求方法、参数、返回信息的等等。 API详细说明 @Api(tags = "收付费方式变更") 常用 @ApiOperation("获取用户列表") 常用 @ApiParam(v
254 0
spring boot 下swagger2 的使用
|
Java API Maven
Springboot 系列(四)Spring Boot 日志框架
Springboot 系列(四)Spring Boot 日志框架
758 0
Springboot 系列(四)Spring Boot 日志框架