因为项目需要,简单的了解了一下,还有很多东西没弄明白
有需要的可以看一下其他作者的文章,了解一下Protobuf:
http://blog.csdn.net/think_soft/article/details/8227363
http://www.cnblogs.com/stephen-liu74/archive/2013/01/02/2841485.html
貌似在Eclipse中有个用于开发Protobuf的插件,没试过,不知道
http://www.360doc.com/content/14/0718/15/16044571_395291178.shtml
一定要注意版本保持一致,我使用的是protobuf-2.5.0版本
protoc.exe工具:http://download.csdn.net/download/erli11/7408633
jar包:
案例(protobuf-2.5.0\examples目录下有相应.proto文件(addressbook.proto)及测试代码):http://download.csdn.net/download/erli11/7408809
如上案例addressbook.proto生成Java代码结构分析如下
案例测试流程:
1.新建Java工程
2.添加.jar文件
3.新建.prroto文件,添加内容
4.通过命令行将.prroto文件编译为Java代码文件
5.编写测试代码
6.运行,查看结果
下面是摘取我项目中的部分内容
案例一:
有两个.proto文件(ebdTest.proto、sourceTest.proto),在ebdTest.proto中引入sourceTest.proto中定义的message:
(1)ebdTest.proto
1 package com.comtom.proto; 2 3 import "sourceTest.proto"; 4 5 option java_outer_classname = "EbdProto"; 6 7 message Ebd{ 8 required Source source =1; 9 }
(2)sourceTest.proto
1 package com.comtom.proto; 2 3 message Source{ 4 required string sourceType=1; 5 required string sourceName=2; 6 required string sourceID=3; 7 }
通过命令行编译上述两个.proto文件,生成.java文件,导入工程即可编码测试
(3)测试代码
1 package com.comtom.test; 2 3 import com.comtom.proto.SourceTest; 4 import com.comtom.proto.EbdProto.Ebd; 5 6 public class ProtobufTest { 7 8 public static void main(String[] args) { 9 10 Ebd ebd=Ebd.newBuilder() 11 .setSource(SourceTest.Source.newBuilder().setSourceType("Test").setSourceName("YanYu").setSourceID("123").build()) 12 .build(); 13 System.out.println(ebd.getSource().getSourceID()); 14 } 15 16 }