读书人

google protobuf 施用

发布时间: 2012-12-26 14:39:28 作者: rapoo

google protobuf 使用

1. 下载:

http://code.google.com/p/protobuf/downloads/list

?

2.解压文件到:

D:\Java\protoc

?

将descriptor.proto生成java 代码,

?

D:\Java\protoc>protoc.exe -h? 查看命令

D:\Java\protoc>protoc.exe?--version? 查看版本?

?

D:\Java\protoc>protoc.exe?-I=D:\Java\protoc\protobuf-2.0.0beta\src\google\protobuf\ ?--java_out=./ D:\Java\protoc\protobuf-2.0.0beta\src\google\protobuf\descriptor.proto

?

/** 或者? **/

?

// 解压protoc-2.3.0-win32.zip,里面有个protoc.exe文件,配置到path
dos下执行:protoc --version? 查看版本。??

// 然后:D:\Java\protoc>protoc --java_out=. descriptor.proto

?

3.定义一个proto文件

参考:http://code.google.com/apis/protocolbuffers/docs/proto.html

BaseUserRelation.proto内容如下:
package protobuf ;
option java_package = "com.common.domain.protobuf";
option java_outer_classname = "BaseUserRelationMessage";

message BaseUserRelation{
?required int64 user_id?? = 1;
?required int64 follow_user_id? = 2;
?optional int32 status = 3;?
?optional int64 tag??? = 4;
?optional int64 gmt_created =5;
?optional int64 gm_modified=6;
?required int64 id=7;

}
message BaseUserRelationList{
?repeated BaseUserRelation baseUserRelation = 1;
}

5.生成java代码:protoc.exe java_out=./? BaseUserRelation.proto

?

注: pb序列化性能,序列化后的对象都比java,hession序列化好很多,这个是其本身特性决定, PB少了协议,但这个也带来不方便,当你需要增加或者删除一个字段的时候,你需要重新用proto成生文件,没像用java序列化方便.

??? proto2.3跟2.4是不兼容的,2.4增加了不少新的API,生成出来的java类也不一样。?

?

读书人网 >编程

热点推荐