protobuf是google开源的序列化工具,他支持很多语言。这里介绍如何通过protobuf在java中做序列化。首先,我们需要准备protoc编译环境,这个是前提,我们写好了proto文件,当然需要生成对应的java类,这时候,就需要protoc-2.x.x-win32工具将其转为java类。这里我使用的是protoc-2.4.1-win32工具,这个在网上可以下载,下载之后,解压到本地,然后将/path/to/protoc路径加入环境变量的path变量中,这样,我们可以在命令行下运行protoc命令了。如下所示:
准备一个User.proto文件,内容如下,我们定一个User类,下面有4个属性,分别是id,name,age,mobile。
option java_outer_classname="UserProtoBuf";
option java_package="com.xxx.serial";
message User{
required int32 id=1;
required string name=2;
optional int32 age=3;
optional string mobile=4;
}
虽然语法和java有些区别,而且数据类型也不太一样,但是基本能够看得懂