Protobuf序列化这么强,为什么不花五分钟把握一下呢?
一、为什么要行使protobuf? 行使protobuf的缘故起因必定是为了办理开拓中的一些题目,那行使其他的序列化机制会呈现什么题目呢? (1)java默认序列化机制:服从极低,并且还能不能跨说话之间共享数据。 (2)XML常用于与其他项目之间数据传输可能是共享数据,可是编码息争码会造成很大的机能丧失。 (3)json名目也是常见的一种,可是在json在理会的时辰很是耗时,并且json布局很是占内存。 可是我们protobuf是一种机动的、高效的、自动化的序列化机制,可以有用的办理上面的题目。 二、怎样行使protobuf protobuf这么优越行使起来也长短常的简朴,我们可以给出其首要的三个步调,然后行使一个根基的案例去实现一下。 (1)界说.proto文件:我们在这个文件中描写我们序列化的信息,相同于bean类。 (2)按照.proto天生对应的类文件,上面这个proto就像是一个模板,此刻我们要按照这个模板建设出一个java类。 (3)序列化。 有了这个根基的步调我们我们就详细去实现一下: 1、下载安装protobuf 第一步:下载解压 我的电脑是windows10,因此这里给出在windows下的行使,linux下面行使我也将在后续文章推出。我们起首下载protobuf(github上搜刮protobuf,有各类说话可供选择)。选择protoc-3.9.0-win64.zip。下载完成之后解压到D:/protobuf目次下面就好了。 第二步:设置情形变量 也就是将D:protobufprotoc-3.9.0-win64bin设置到path情形变量内里。 第三步:验证是否安装乐成 最后我们可以在cmd中输入protoc --version验证一下,是否乐成。 OK,到这里我们就安装好了。 2、编写proto文件 之前我们说过proto 文件很是相同java的bean。在这里我们在bin目次下新建一个Person.proto文件(和proto.exe)。输入下列内容: syntax="proto3"; option java_package = "com.fdd.protobuf"; option java_outer_classname = "PersonProto"; message Person { string name = 1; int32 age = 2; } 我们表明一些我们都写了什么 (1)第一行有一个proto3,他暗示的是protobuf的语法版本,就相同于jdk1.7和jdk1.8的观念。必要在第一行指定。默认行使的是proto2。 (2)java_package:暗示的是java包,不指定就行使 package.天生的类会放到该package下。这里暗示把天生的类存放在com.fdd.protobuf包下面。 (3)java_outer_classname:我们说过.proto文件,要天生对应的类,这个参数就指定输出什么类名。这里暗示天生的类名是PersonProto。 (编辑:湖南网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |