JAVA Proto3使用教程

IDEA安装Protobuf Support

安装插件Protobuf Support
我的idea是2019.2.4直接搜索插件是没有搜到的,在官网也没有找到这个插件,经过一系列的百度,发现先安装了GenProtobuf,再本地安装一个protobuf-jetbrains-plugin-0.13.0.zip插件就可以找到Protobuf Support啦。安装完成后重启IDEA就好啦。
插件下载在这里呦~
链接: https://pan.baidu.com/s/1ORlRs_G9OyqNJeVR6qrS7Q
密码: a8b8

添加maven依赖

	<properties>
        <grpc.version>1.0.3</grpc.version>
    </properties>
    
		<dependency>
            <groupId>io.grpc</groupId>
            <artifactId>grpc-netty</artifactId>
            <version>${grpc.version}</version>
        </dependency>
        <dependency>
            <groupId>io.grpc</groupId>
            <artifactId>grpc-protobuf</artifactId>
            <version>${grpc.version}</version>
        </dependency>
        <dependency>
            <groupId>io.grpc</groupId>
            <artifactId>grpc-stub</artifactId>
            <version>${grpc.version}</version>
        </dependency>
        <dependency>
            <groupId>com.google.protobuf</groupId>
            <artifactId>protobuf-java</artifactId>
            <version>3.4.0</version>
        </dependency>
        

<build>
        <extensions>
            <extension>
                <groupId>kr.motd.maven</groupId>
                <artifactId>os-maven-plugin</artifactId>
                <version>1.4.1.Final</version>
            </extension>
        </extensions>
        <plugins>          
            <plugin>
                <groupId>org.xolstice.maven.plugins</groupId>
                <artifactId>protobuf-maven-plugin</artifactId>
                <version>0.5.0</version>
                <configuration>
                    <protocArtifact>
                        com.google.protobuf:protoc:3.1.0:exe:${os.detected.classifier}
                    </protocArtifact>
                    <pluginId>grpc-java</pluginId>
                </configuration>
                <executions>
                    <execution>
                        <goals>
                            <goal>compile</goal>
                            <goal>compile-custom</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>   

编写proto3 文件

在main下创建一个proto文件夹,创建一个proto文件
编写proto文件内容
代码
// 声明使用的语法是proto3,否则默认是proto2
syntax = "proto3";
// 导入Any包,就可以支持Protobuf3的 Any类型,
// Any包含任意序列化的消息(字节),以及一个URL,该URL充当该消息的全局唯一标识符并解析为该消息的类型
import "google/protobuf/any.proto";

// 命名空间
package proto.demo.message;
// 生成的java包路径
option java_package = "proto.demo.message";
// 生成的java对象名
option java_outer_classname = "ProtoDemoMessage";
// 需要传输的数据格式
message TransportMessage {
    int64 Id = 1;
    string AccessToken = 2;
    EnumMsgType MsgType = 3;
    google.protobuf.Any Content = 4;
}
// 一个proto文件可以定义多个数据结构
enum EnumMsgType {
    UnknownMsg = 0;
    HeartBeatReq = 1001;
    MsgReceivedAck = 1002;
    Error = 1003; 
}

生成java文件

在编译后就可以看到生成的java文件

总结

Protobuf 就是一种数据格式,不受语言、平台的限制,可用于网络数据传输,数据存储。

protocol buffers 是一种语言无关、平台无关、可扩展的序列化结构数据的方法,它可用于(数据)通信协议、数据存储等。
Protocol Buffers 是一种灵活,高效,自动化机制的结构数据序列化方法-可类比 XML,但是比 XML 更小(3 ~ 10倍)、更快(20 ~ 100倍)、更为简单。
你可以定义数据的结构,然后使用特殊生成的源代码轻松的在各种数据流中使用各种语言进行编写和读取结构数据。你甚至可以更新数据结构,而不破坏由旧数据结构编译的已部署程序。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值