首页 > 其他分享 >【Protobuf(一)】proto文件的几个参数的含义

【Protobuf(一)】proto文件的几个参数的含义

时间:2022-11-11 12:36:07浏览次数:46  
标签:包名 文件 java Protobuf package 含义 proto message


1.package:

定义message的包名。包名的含义与平台语言无关,这个package仅仅被用在proto文件中用于区分同名的message类型。可以理解为message全名的前缀,和message名合起来唯一标识一个message类型。比如com.user.User与com.company.User就是两个message类型。在proto文件中导入其他proto文件的message,需要加上package前缀才行。所以包名是用来唯一标识message的;

这个包名与proto文件所在的路径没有关系,包名为com.user,不代表必须在com/user目录下;

当然不能说与平台语言完全没有关系,因为默认情况下,由proto编译为某一种平台的语言时,会将packge转为对应语言内的元素,比如c++是命名空间,java是包名(如果没有额外指定java_package);

grpc使用包名定义完整的服务路径;

2.proto文件本身的路径:

该路径会影响proto文件import其他文件。比如a.proto在com/user目录下,那么其他proto想要import该文件时,需要import "com/user/a.proto"。也就是说import关键字后面的路径是被import的proto文件的路径,与package没有任何关系!

3.java_package:

该字段是option的,用于标识生成的java文件的package。如果没有指定,则使用proto里定义的package,如果package也没有指定,那就会生成在根目录下;

4.java_outer_classname:

该字段是option的,用于指定proto文件生成的java类的outerclass类名。什么是outerclass?简单来说就是用一个class文件来定义所有的message对应的java类。这个class就是outerclass;如果没有指定,默认是proto文件的驼峰式;

5.java_multiple_files:

该字段是option的,如果是true,那么每一个message文件都会有一个单独的class文件;否则,message全部定义在outerclass文件里。

 

标签:包名,文件,java,Protobuf,package,含义,proto,message
From: https://blog.51cto.com/u_15873544/5844589

相关文章

  • prototype和__proto__和constructor之间的关系
    深入理解原型到原型链探究prototype__proto__constructor构造函数创建对象我们知道我们可以直接定义对象或者可以用构造函数的方法创建对象functionPerson()......
  • CSharp: Prototype Pattern in donet 6
     ///<summary>///原型模式PrototypePattern///</summary>publicinterfaceIColorPrototype{///<summary>///......
  • mac下grpc: command not found: protoc
    最近在学grpc,这个开篇就遇到一个问题,花了两个小时才解决,在此记录下 1.按照官方指示下载文件  2.执行文件会下载在gopath下的bin目录下,所以需要提前在path中添加gop......
  • 网络协议之:redis protocol 详解
    目录简介redis的高级用法Redis中的piplineRedis中的Pub/SubRESPprotocolSimpleStringsBulkStringsRESPIntegersRESPArraysRESPErrorsInlinecommands总结简介redis......
  • 不同含义的new delete
    new\delete1、newoprator要完成的两部分<1>分配内存,有opratornew来做<2>调用构造函数初始化内存中的对象2、opratornew作用;返回未处理的指针和未初始化的内存原......
  • JS中的prototype、__proto__与constructor
    1.前言作为一名前端工程师,必须搞懂JS中的prototype、proto与constructor属性,相信很多初学者对这些属性存在许多困惑,容易把它们混淆,本文旨在帮助大家理清它们之间的关......
  • shell 2>&1的含义
    目录shell2>&1的含义首先了解下1和2在Linux中代表什么关于2>&1的含义为什么2>&1要放在后面每次都写">log2>&1"太麻烦,能简写吗?文档转自shell2>&1的含义首先了解下1和2......
  • Array.prototype.at。Arrat和 String 中的 at 方法
    一篇有关新js特性at方法的思考入参只能是number类型,允许入参有小数(按照chromeDevToolsConsole测试确实可以带小数)有返回值,如果对应下标在实例中存在,则返回对应......
  • Google protoBuf
    前言:最近app要做用户行为统计埋点,对数据进行序列化和反序列化实用Google提供的protoBuf,这里也简单的介绍一下protobuf已经更新到3.2.0:查看blog下面资源包依赖:Win7+64位,and......
  • 如何在proto3中用上golang对应的interface{}类型
    作者:张富春(ahfuzhang),转载时请注明作者和引用链接,谢谢!cnblogs博客zhihuGithub公众号:一本正经的瞎扯首先,我希望所有golang中用于http请求响应的结构,都使用proto......