当前位置: 首页 > 知识库问答 >
问题:

java生成的代码中的自定义

微生俊
2023-03-14

我们有一个用例,在这个用例中,我们定义了许多不同的RPC。我们使用google的protobuf java生成了一个基于java的grpc存根代码

service Greeter {
  // Sends a greeting
  rpc SayHello (HelloRequest) returns (HelloReply) {}
}

// The request message containing the user's name.
message HelloRequest {
  string name = 1;
}

// The response message containing the greetings
message HelloReply {
  string message = 1;
}

要转换为like

service Greeter {
  // Sends a greeting
  rpc SayHello (HelloRequest) returns (HelloReply) {}
  rpc SayHelloStreaming (stream HelloReply) returns (stream HelloRequest) {}
}

// The request message containing the user's name.
message HelloRequest {
  string name = 1;
}

// The response message containing the greetings
message HelloReply {
  string message = 1;
}

在java生成的代码中,每个原始服务应该有2个服务。我们只希望最终java生成的代码具有2个服务,解析器可能会/可能不会更新原始服务。原型文件。

当前protoc是否可以进行这种定制?我们可以扩展插件并编写我们的插件吗-

共有1个答案

施振海
2023-03-14

我不清楚你的问题。

修改原始文件是gRPC的基本要求。

上的Java教程https://grpc.io包括向服务添加方法的示例。部分原因是,添加|删除|更新方法|消息|字段是常见的行为。

注意:为了澄清术语,在您的示例中,您建议向现有服务(定义)添加一个方法。如果您认为proto定义了一个API,那么这代表了一个不间断的更改。有关良好的概述,请参阅gRPC服务版本控制。现有客户将继续工作(他们只知道SayHello),而新客户也会知道SayHelloStreaming。

 类似资料:
  • 我正在编写一个自定义代码生成器,其中每个主数据表都有自己的java枚举。我使用JOOQ配置中的设置将表的每次使用映射到枚举,这很好。我正在努力删除不必要的生成类,如POJO、DAO和Records,并提出了2个选项。 从代码生成中排除表 使用

  • 问题内容: 我正在寻找一种基于类中定义的字段为现有Java源代码文件中的新方法自动生成源代码的方法。 本质上,我希望执行以下步骤: 读取并解析 遍历源代码中定义的所有字段 添加源代码方法 保存(理想情况下,保留现有代码的格式) 哪些工具和技术最适合完成此任务? 编辑 我不想在运行时生成代码;我想扩充现有的Java 源代码 问题答案: 用自动生成的代码修改相同的Java源文件是维护的噩梦。考虑生成一

  • 注: 内容来自官网资料 Java Generated Code 这个页面准确描述 protocol buffer 编译器为任何给定协议定义生成的java代码。proto2和proto3生成的代码之间的任何不同都将被高亮 - 注意在这份文档中描述的是这些生成代码的不同,而不是基本的消息类/接口,后者在两个版本中是相同的。在阅读这份文档之前你应该先阅读 proto2语言指南 和/或 proto3语言指

  • 我有一个有许多表的数据库。我想开始使用jOOQ为我的应用程序。但是我不希望JOOQ为所有表生成代码,但只为表的一小部分生成代码。我如何配置它?

  • 我正在尝试从多个 WSDL 文件生成 Axis2 (v1.6.1) Web 服务客户端代码,以便我可以在单个项目中拥有多个 Web 服务客户端。我正在使用 Ant 通过代码生成任务生成源代码。 因此,我需要使用自定义命名空间来打包映射,以使每个 Web 服务客户端的代码与其他客户端的代码分开,以避免冲突。 下面是一个示例 WSDL 文件中的命名空间: 我已经设法将生成代码的主体放入适当的包中。我已

  • 问题内容: 我专门在寻找JPA代码生成技术 首先,哪些项目可以生成符合JPA的代码?(例如HibernateTools) 其次,我还想自定义代码生成实用程序,因为它必须符合我们的企业标准。 如果没有,使用反射生成Java代码的所有可用框架有哪些?所以我可以从头开始写。 注意:我使用eclipse生成JPA代码,并反复对其进行重构以使其兼容。 问题答案: 我也很难理解这个问题,但我将尝试改写: 您在