@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
![](/images/zang.png)
![](/images/jiucuo.png)
猜你喜欢
java中的基础运算符
Unity实现图片轮播组件
![](https://img.aspxhome.com/file/2023/9/100159_0s.gif)
javaweb Servlet开发总结(二)
![](https://img.aspxhome.com/file/2023/7/58567_0s.png)
Java实现一个简单的定时器代码解析
java:无法访问org.springframework.boot.SpringApplication的解决方法
![](https://img.aspxhome.com/file/2023/1/67701_0s.jpg)
java8 多个list对象用lambda求差集操作
![](https://img.aspxhome.com/file/2023/9/86049_0s.jpg)
c#实现哈夫曼树算法
Java中泛型的用法总结
Java超详细讲解设计模式中的命令模式
基于C#实现一个简单的FTP操作工具
Java的Hibernate框架中Criteria查询使用的实例讲解
Spring Security使用Lambda DSL配置流程详解
不规范使用ThreadLocal导致bug分析解决
![](https://img.aspxhome.com/file/2023/2/59182_0s.png)
Java如何把int类型转换成byte
![](https://img.aspxhome.com/file/2023/6/79816_0s.png)
WPF实现带筛选功能的DataGrid
![](https://img.aspxhome.com/file/2023/0/76430_0s.png)
Spring Cloud Gateway 远程代码执行漏洞(CVE-2022-22947)的过程解析
![](https://img.aspxhome.com/file/2023/1/72651_0s.jpg)
如何关闭 IDEA 自动更新
![](https://img.aspxhome.com/file/2023/7/62107_0s.png)
Java编程复用类代码详解
springmvc path请求映射到bean 方法的流程
![](https://img.aspxhome.com/file/2023/6/86816_0s.jpg)