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类也不一样。?
?