ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
> .proto生成java或其他语言 1. 首先看看一个简单的service.proto文档 ~~~ syntax = "proto3"; option java_package = "com.zjm.gRpc.service"; //产生文件存放的包路径 option java_outer_classname = "GRpcService"; //通讯类 option java_multiple_files = true; //是否产生多个类,如果false就会产生很多内部类 // 定义通用的 GRpc 服务,会生成CommonServiceGRpc,客户端去里面的Stub,服务端要实现里面的handle,handle是里面定义的方法 service CommonService { // 处理请求 rpc handle ( Request ) returns ( Response ) {} //这是定义的方法,参数会有Request这个类,返回Response这个类 } // 定义通用的 GRpc 请求体 message Request { int32 serialize = 1; //这个请求,会有一个序列化索引,用于服务端的序列化方法 bytes request = 2; //byte[],这个是请求的真正requestBody } // 定义通用的 GRpc 响应体 message Response { bytes response = 1; //byte[],这个是请求的真正responseBody } ~~~ 1. Request和Response和GRpcService的model生成 ``` cd G:\protoc-3.9.1-win64\bin G: protoc --java_out=./ service.proto ``` 这时候会在当前目录生成 com\zjm\gRpc\service目录(这时候生成的是没有CommonServiceGrpc这个service的) ![](https://img.kancloud.cn/f9/dc/f9dc8a7959818902103dca736dff53ce_1044x199.png) 2. 生成service(CommonServiceGrpc) ``` cd G:\protoc-3.9.1-win64\bin G: protoc --plugin=protoc-gen-grpc-java=./gen.exe --grpc-java_out=./ service.proto ``` 会在com\zjm\gRpc\service生成CommonServiceGrpc 3. 我的目录 ![](https://img.kancloud.cn/01/c6/01c62778513f481474004bf95a697d1a_1052x365.png) 记得去下载和你使用protobuff相同的protoc编译器,我的是java里面使用的protobuff 3.7.1,所以下载的protoc是3.7.1([https://github.com/google/protobuf/releases](https://github.com/google/protobuf/releases)) 然后去下载protoc-gen-grpc-java-1.10.0-windows-x86_64.exe(http://central.maven.org/maven2/io/grpc/protoc-gen-grpc-java/1.10.0/protoc-gen-grpc-java-1.10.0-windows-x86_64.exe) ,这个下载后放在bin里面