91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Protobuf的簡要介紹及使用詳解

發布時間:2020-10-21 14:38:32 來源:腳本之家 閱讀:269 作者:三一公子 欄目:開發技術

一、protobuf的應用場景

在官方文檔中可以看到

protocol buffers 是一種語言無關、平臺無關、可擴展的序列化結構數據的方法,它可用于(數據)通信協議、數據存儲等。 Protocol Buffers 是一種靈活,高效,自動化機制的結構數據序列化方法-可類比 XML,但是比 XML 更小(3 ~ 10倍)、更快(20 ~ 100倍)、更為簡單

可以看到protobuf 與json相比具有 壓縮比高 、解壓縮速度更快的優點  

二、protobuf的使用

protobuf在使用上較為復雜,過程可以分為以下幾步:

  •  編寫java 的POJO類
  • 通過工具將java的POJO類,生成protobuf數據格式下的(在idea中可以下載Pojo2Proto插件)
  • 新建一個以.proto的文件,并寫入Pojo2Proto插件生成數據
  • 通過proto.exe程序將.proto文件編譯生成java類,該JAVA類中定義有PB對該類的數據格式定義、get/set操作、解/壓鎖數據的方法

POJO類數據:

public class Entity {
  private String key;
  private String value;
  public String getKey() {
    return key;
  }
  public void setKey(String key) {
    this.key = key;
  }
  public String getValue() {
    return value;
  }
  public void setValue(String value) {
    this.value = value;
  }
}

    生成的protobuf的數據:  

syntax = "proto3";
 
message Entity {
  string key = 1;
  string value = 2;
}

通過protoc.exe進行編譯

在proto.exe的下載地址 https://repo1.maven.org/maven2/com/google/protobuf/protoc/ 編譯Entity.proto文件

protoc-3.9.2-windows-x86_64.exe  ./src/main/proto/Entity.proto --java_out=./src/main/java/src/

編譯后生成有 Entity OuterClass類的文件     通過 Entity OuterClass類壓縮數據

StreamWrap.Entity.Builder builder = StreamWrap.Entity.newBuilder();
//構造數據
builder.setKey("123");
builder.setValue("123");
StreamWrap.Entity entity = builder.build();
//將該PB類轉換為二進制數據格式
byte[] buff = entity.toByteArray();

通過EntityOuterClass類解壓縮數據

總結

到此這篇關于Protobuf的簡要介紹及使用的文章就介紹到這了,更多相關Protobuf使用內容請搜索億速云以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持億速云!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

分宜县| 巴彦县| 梁河县| 贺兰县| 襄垣县| 锦屏县| 巴南区| 宿迁市| 湾仔区| 乌兰察布市| 莲花县| 长寿区| 合作市| 威海市| 贡觉县| 青海省| 山丹县| 车险| 陈巴尔虎旗| 南京市| 三门县| 尤溪县| 昆明市| 彭州市| 博爱县| 连平县| 安丘市| 双峰县| 新泰市| 外汇| 元阳县| 仙游县| 花莲市| 都江堰市| 衡阳市| 三都| 建始县| 丹东市| 象州县| 耿马| 永兴县|