@GrpcServise 注解的作用和使用

简介: @GrpcServise 注解的作用和使用

转载请注明出处:

1. @GrpcServise 的作用和优势

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

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

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

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

  1. 简化了 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) {
       // ...
    }
}

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

grpc:
  server:
    port: 8888

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

 

标签: protobuf

目录
相关文章
|
Java 微服务 Spring
@EnableDiscoveryClient注解的作用
@EnableDiscoveryClient注解的作用 @EnableDiscoveryClient 及@EnableEurekaClient 类似,都是将一个微服务注册到Eureka Server(或其他 服务发现组件,例如Zookeeper、Consul等)
1573 0
|
1月前
|
存储 Java 数据库连接
@OneToOne注解的作用
@OneToOne注解的作用
|
2月前
|
XML 前端开发 Java
控制spring框架注解介绍
控制spring框架注解介绍
|
6月前
|
Java Spring 容器
@Resource注解是什么作用,和@bean区别是什么?
@Resource注解是什么作用,和@bean区别是什么?
192 0
怎么看注解对应的处理类?
怎么看注解对应的处理类?
70 0
|
Java
java注解(作用于注解)
java注解(作用于注解)
119 0
|
JSON 数据格式
@JsonProperty与@JSONField注解用处
@JsonProperty与@JSONField注解用处
Zp
|
XML Java 数据格式
@Component注解的作用
@Component注解的作用
Zp
283 0
@Component注解的作用
Zp
@PostConstruct注解作用
@PostConstruct注解作用
Zp
154 0