ProtocolBuffer

因为项目需要,简单的了解了一下,还有很多东西没弄明白

 

有需要的可以看一下其他作者的文章,了解一下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代码结构分析如下

 ProtocolBuffer_第1张图片

 

案例测试流程:

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 }

 

你可能感兴趣的:(protocol)