protobuf java代码生成及实例

1.下载工具

   protoc-2.4.1-win32.zip

   protobuf-java-2.4.1.jar

 (注意两者的版本要相同,下载地址https://github.com/protocolbuffers/protobuf

2.proto文件的内容

syntax = "proto2";
option java_package = "com.netty.protobuf";
option java_outer_classname = "TeacherSerializer";

message Teacher{
    required int64 id = 1;
    required int32 age =2;
    required string name = 3;
}

3.根据proto文件生成java文件

   解压protoc-2.4.1-win32.zip,将其中的protoc.exe文件和Teacher.proto文件放在同一个文件夹下。

 

   使用命令生成TeacherSerializer.java文件。

protoc ./Teacher.proto --java_out=./

4.创建java工程

  创建java工程Protobuf,将生成的文件TeacherSerializer.java放入工程,并将 protobuf-java-2.4.1.jar作为Referenced Libraries引入到工程中。

  

5.测试代码

   创建测试类TestProtobuf,测试自动生成的java文件是否能正常使用。

package com.netty.protobuf;

import java.util.Arrays;
import com.netty.protobuf.TeacherSerializer.Teacher;
import com.netty.protobuf.TeacherSerializer.Teacher.Builder;

public class TestProtobuf {	
	public static void main(String[] args) {
		Builder builder = TeacherSerializer.Teacher.newBuilder();
		builder.setId(1L).setAge(22).setName("April");
		Teacher t = builder.build();
		System.out.println(Arrays.toString(t.toByteArray()));
		System.out.println("Length = " + t.toByteArray().length);
	}
}

运行结果:

[8, 1, 16, 22, 26, 5, 65, 112, 114, 105, 108]
Length = 11

猜你喜欢

转载自blog.csdn.net/liyazhen2011/article/details/86707398
今日推荐