yefeng 发表于 2013-1-15 08:07:18

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类也不一样。 
 
页: [1]
查看完整版本: google protobuf 使用