1)Protocol buffers简介
Protocol Buffers的是一个高效且可扩展的格式结构化数据编码的一种方式。
谷歌使用了Protocol Buffers的几乎所有它的内部RPC协议和文件格式
使用protobuf传输的好处有:二进制传输,安全、数据量小
.proto文件中我们服务器定义需要传输的数据,及数据类型等。而传输的时候则是使用了通过官方工具生成的具体为.java的消息体。
在windwos上java工程引用proto时,需要先下载个protoc.exe的工具,转换为java代码才可以使用。
下载地址
https://github.com/google/protobuf/releases
解压后放在本地磁盘,将目录添加到环境变量中的path变量中。
2)编写bat文件,内容如下:
@echo off
::协议文件路径, 最后不要跟“\”符号
set SOURCE_FOLDER=D:\fabric\fabric-sdk-java\src\main\proto\msp
::协议文件路径, 最后不要跟“\”符号
set SOURCE_FOLDER=D:\fabric\fabric-sdk-java\src\main\proto\msp
::如果文件中引用了别的proto文件,
IMP_
FOLDER是引用的proto文件的目录
set IMP_
FOLDER=D:\fabric\fabric-sdk-java\src\main\proto
::Java编译器路径
set JAVA_COMPILER_PATH=D:\fabric\protoc-3.0.0-win32\bin\protoc.exe
::Java文件生成路径, 最后不要跟“\”符号
set JAVA_TARGET_PATH=D:\fabric\bb
::删除之前创建的文件
del %JAVA_TARGET_PATH%\*.* /f /s /q
::遍历所有文件
for /f "delims=" %%i in ('dir /b "%SOURCE_FOLDER%\*.proto"') do (
echo %JAVA_COMPILER_PATH% -I=%SOURCE_FOLDER% --java_out=%JAVA_TARGET_PATH% %SOURCE_FOLDER%\%%i
%JAVA_COMPILER_PATH% --proto_path=% IMP_ FOLDER% --java_out=%JAVA_TARGET_PATH% %SOURCE_FOLDER%\%%i
)
echo 协议生成完毕。
pause
::Java编译器路径
set JAVA_COMPILER_PATH=D:\fabric\protoc-3.0.0-win32\bin\protoc.exe
::Java文件生成路径, 最后不要跟“\”符号
set JAVA_TARGET_PATH=D:\fabric\bb
::删除之前创建的文件
del %JAVA_TARGET_PATH%\*.* /f /s /q
::遍历所有文件
for /f "delims=" %%i in ('dir /b "%SOURCE_FOLDER%\*.proto"') do (
echo %JAVA_COMPILER_PATH% -I=%SOURCE_FOLDER% --java_out=%JAVA_TARGET_PATH% %SOURCE_FOLDER%\%%i
%JAVA_COMPILER_PATH% --proto_path=% IMP_ FOLDER% --java_out=%JAVA_TARGET_PATH% %SOURCE_FOLDER%\%%i
)
echo 协议生成完毕。
pause
3)protoc命令解释
protoc --proto_path=引用的proto文件所在的文件夹 --java_out=指定生成的java文件的目录 proto源文件的路径