欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

我的netty之旅(2)

程序员文章站 2022-04-23 11:52:51
...

学习过程中,需要使用proto,这个是谷歌的一个软件,可以起到语言中立,平台中立,替代xml使用,可以跨语言传输数据,直接到github上下载即可
我是github网址
然后如果想下载软件,就是
我是软件下载网址
下载完软件以后解压一下,再配置一下环境变量就可以用了,path里配置完环境以后cmd输入proto --version就知道生没生效了,然后是在项目里添加file文件.proto结尾,下边的 字段的 1,2,3代表的是顺序,不是默认值,是tag,区分用的

syntax = “proto2”;

package com.protobuf;

option optimize_for = SPEED; option java_package = “com.protobuf”;
option java_outer_classname = “DataInfo”;

message StudentInfo{
required string name = 1;
optional int32 age = 2;
optional string address = 3;
}
具体的每一个代表什么请自行百度,然后输入

>protoc --java_out=src/main/java src/main/java/com/protobuf/Student.proto

java_out代标生成的.java文件的路径,后边的是源文件路径,需要注意的是java_outer_classname和这个.proto文件名不能类似,不然会报错,然后在项目里引一下jar包

<dependency>
		<groupId>com.google.protobuf</groupId>
		<artifactId>protobuf-java</artifactId>
		<version>3.11.0</version>
	</dependency>
	<dependency>
		<groupId>com.google.protobuf</groupId>
		<artifactId>protobuf-java-util</artifactId>
		<version>3.11.0</version>
	</dependency>
package com.protobuf;

import com.google.protobuf.InvalidProtocolBufferException;

public class Test {
	public static void main(String[] args) throws InvalidProtocolBufferException {

		DataInfo.Student student = DataInfo.Student.newBuilder().setName("喜马拉雅").setAddress("北京*").setAge(20).build();
		System.out.println(student);
		byte[] byteArray = student.toByteArray();
		DataInfo.Student studentnew=DataInfo.Student.parseFrom(byteArray);
		System.out.println(studentnew);
		System.out.println(studentnew.getAge());
		System.out.println(studentnew.getAddress());
		System.out.println(studentnew.getName());
		
	}
}

如果想知道更详细的资料,最好还是查一下官网文档比较全面

相关标签: 技术研讨