Rrotobuf 是Google 發佈的開源項目,全稱 Google Protocol Buffers, 是一種輕便高效的結構化數據存儲格式,能夠用與數據的序列化。它與開發語言無關,和平臺無關,具備良好的可擴展性。Protobuf和全部的序列化框架同樣,均可以用於數據存儲、通信協議。
Portobuf的序列化的結果體積要比XML、JSON小不少,XML和JSON的描述信息太多了,致使消息要大;此外Portobuf還使用了Varint 編碼,減小數據對空間的佔用。java
Portobuf序列化和反序列化速度比XML、JSON快不少,是直接把對象和字節數組作轉換,而XML和JSON還須要構建成XML或者JSON對象結構。數組
在idea的plugins中搜索proto
,而後下載以下的插件就行(最多下載的那個):這裏我已經安裝好了,點擊install,而後重啓就能夠。框架
首先 引入依賴ide
<dependency> <groupId>com.google.protobuf</groupId> <artifactId>protobuf-java</artifactId> <version>3.6.1pr</version> </dependency>
在idea中新建一個Student.proto文件,寫入:google
syntax = "proto3"; //版本 option java_outer_classname = "StudentPOJO";//生成的外部類名,同時也是文件名 //protobuf 使用message 管理數據 message Student { //會在 StudentPOJO 外部類生成一個內部類 Student, 他是真正發送的POJO對象 int32 id = 1; // Student 類中有 一個屬性 名字爲 id 類型爲int32(protobuf類型) 1表示屬性序號,不是值 string name = 2; }
而後在本地編譯,須要下載protoc.exe 程序。編碼
使用命令protoc.exe --java_out = . Student.proto
,而後把生成的StudentPOJO放入項目中使用。idea
參考簡書spa