@GrpcServise 注解的作用和使用示例详解

作者:香吧香 时间:2021-07-25 21:12:25 

1.@GrpcServise的作用和优势

在没有使用@GrpcServise注解编写服务端时,我们通常需要自定义Server以及端口,包括start,stop ,注册service 方法等等,开发比较复杂。

使用 @GrpcService则可以省去自定义server,端口,包括start,stop方法等等,可以直接去实现我们需要的grpc方法,并使用 @GrpcService注解 就可以完成grpc服务端的代码开发。

使用 @GrpcService 注解与不使用该注解编写服务端代码的主要区别在于,@GrpcService 注解可以使 gRPC Server 自动扫描注解的服务并自动将其绑定到 gRPC 服务器中,而不需要手动注册这些服务实现。

使用 @GrpcService 注解的优势在于:

  • 简化了 gRPC Server 的配置

因为 Spring Boot 提供自动配置管理,所以无需创建自己的服务器实例或手动将服务绑定到服务器上。Spring Boot 能够自动注册服务 Bean 并将其添加到正确的位置。

2.易于维护

当编写大型应用程序时,可能需要处理数百个接口和服务。使用 @GrpcService 注解可以避免手动维护所有服务实现实例的繁琐工作,并使代码更易于管理和维护。

2.@GrpcServise的使用

下面是一个简单的示例,展示了如何使用 @GrpcService 注解定义服务实现:

1.maven中添加相关的依赖:

<dependency>
   <groupId>io.grpc</groupId>
   <artifactId>grpc-spring-boot-starter</artifactId>
   <version>${grpc.version}</version>
</dependency>
<dependency>
   <groupId>io.grpc</groupId>
   <artifactId>grpc-core</artifactId>
   <version>${grpc.version}</version>
</dependency>

2.使用示例:

@GrpcService
public class MyServiceImpl extends MyServiceGrpc.MyServiceImplBase {
   @Override
   public void myMethod(MyRequest request, StreamObserver<MyResponse> responseObserver) {
      // ...
   }
}

同时,我们可以在springboot的配置文件中设置grpc相关的属性,例如指定端口:

grpc:
 server:
   port: 8888

@GrpcService 是一个 Spring Boot 处理器,它会查找实现了 grpc::BindableService 接口的类,并将其包装成一个 Spring Bean 对象。然后,将这些 Bean 对象注册到 gRPC Server 中。

来源:https://www.cnblogs.com/zjdxr-up/p/17413688.html

标签:@GrpcServise,注解
0
投稿

猜你喜欢

  • java中的基础运算符

    2022-06-23 04:19:38
  • Unity实现图片轮播组件

    2023-03-19 05:12:33
  • javaweb Servlet开发总结(二)

    2023-10-31 11:51:48
  • Java实现一个简单的定时器代码解析

    2021-11-24 20:25:38
  • java:无法访问org.springframework.boot.SpringApplication的解决方法

    2022-07-14 05:24:29
  • java8 多个list对象用lambda求差集操作

    2022-02-19 06:26:52
  • c#实现哈夫曼树算法

    2022-11-24 08:25:02
  • Java中泛型的用法总结

    2023-03-03 08:54:47
  • Java超详细讲解设计模式中的命令模式

    2023-07-26 15:23:11
  • 基于C#实现一个简单的FTP操作工具

    2023-05-12 11:50:58
  • Java的Hibernate框架中Criteria查询使用的实例讲解

    2023-08-22 23:25:47
  • Spring Security使用Lambda DSL配置流程详解

    2021-12-23 19:20:32
  • 不规范使用ThreadLocal导致bug分析解决

    2023-11-24 20:03:59
  • Java如何把int类型转换成byte

    2023-03-13 11:12:39
  • WPF实现带筛选功能的DataGrid

    2022-05-07 07:48:56
  • Spring Cloud Gateway 远程代码执行漏洞(CVE-2022-22947)的过程解析

    2021-10-03 11:25:56
  • 如何关闭 IDEA 自动更新

    2021-11-04 17:17:30
  • Java编程复用类代码详解

    2021-09-13 10:06:34
  • springmvc path请求映射到bean 方法的流程

    2021-10-25 04:42:58
  • java emoji表情存储的解决方法

    2023-07-10 20:19:06
  • asp之家 软件编程 m.aspxhome.com