当前位置: 首页 > news >正文

犀牛网站建设电子商城网站制作公司

犀牛网站建设,电子商城网站制作公司,传奇世界官网电脑版,成都开发网站建设你还在用OpenFeign嘛#xff1f;快来试试 SpringBoot3 中的这个新玩意#xff01;声明式HTTP调用 1、由来 Spring Boot3 去年底就已经正式发布#xff0c;我也尝了一把鲜#xff0c;最近有空会和小伙伴们慢慢聊聊 Spring Boot3 都给我们带来了哪些新东西。 今天我们就先…你还在用OpenFeign嘛快来试试 SpringBoot3 中的这个新玩意声明式HTTP调用 1、由来 Spring Boot3 去年底就已经正式发布我也尝了一把鲜最近有空会和小伙伴们慢慢聊聊 Spring Boot3 都给我们带来了哪些新东西。 今天我们就先来看看声明式 HTTP 接口。 用过 Spring Cloud 的小伙伴都知道在 Spring Cloud 家族中负责进程间通信的我们可以使用 RestTemplate 或者 OpenFeign当然也有其他方式如基于消息中间件的消息驱动的微服务或者基于 gRPC 的调用等。 RestTemplate 我们可以将之当作一个普普通通的 HTTP 调用工具来对待区别于其他的 HTTP 客户端RestTemplate 用来调用 RESTful 风格的接口特别方便。 不过比 RestTemplate 更加方便的是 OpenFeign通过接口声明就可以实现远程调用。 以前我们想要用声明式 HTTP 调用需要通过 OpenFeign 来实现这个需要第三方的依赖从 Spring6 开始Spring Boot3Spring 自己提供了类似的功能通过 HttpExchange 注解也能方便的实现 声明式 HTTP 调用。以后跨服务调用又多了一个选择。 2、使用 接下来我通过一个案例来和小伙伴们演示一下 HttpExchange 注解的具体玩法。 首先我们先创建一个普通的名为 server 的 Spring Boot 项目这个普通的 Spring Boot 项目中只需要提供一个简单的测试接口即可如下 RestController public class HelloController {GetMapping(/server/hello)public String hello(String name) {return hello name;}}这个对大家来说应该是没什么难度的我就不多说了。 现在假设我有另外一个服务名为 client我想在 client 中调用 server 中提供的这个接口。 首先我们来创建 client 这个项目大家注意创建的时候我们不仅需要添加 Web 依赖还需要 Reactive Web因为这个 HttpExchange 底层基于 WebClient而 WebClient 则是 Reactive Web 提供的 创建完成后接下来我们就可以声明 Http 接口了 HttpExchange(/server) public interface ToDoService {GetExchange(/hello)String hello(RequestParam String name); }这些用法跟我们在 SpringMVC 中常用的 RequestMapping 和 GetMapping 等特别类似 HttpExchange 类似于 RequestMapping可以将之放在类上起到一个请求窄化的作用也可以放在方法上放在方法上我们可以通过 method 属性来指定具体的请求方法这个也跟 RequestMapping 类似 HttpExchange(value /server,method GET)。GetExchange 类似于 GetMapping这个就不再赘述了其他类似的注解还有 DeleteExchange、PatchExchange、PostExchange、PutExchange 等。另外需要注意的是请求方法的参数需要加上 RequestParam 注解这一点和 OpenFeign 比较类似。 接口声明好之后还没完我们还需要配置一下才能使用。如下 Configuration public class WebConfig {BeanWebClient webClient() {return WebClient.builder().baseUrl(http://localhost:8080).build();}BeanToDoService toDoService() {HttpServiceProxyFactory httpServiceProxyFactory HttpServiceProxyFactory.builder(WebClientAdapter.forClient(webClient())).build();return httpServiceProxyFactory.createClient(ToDoService.class);} }这个配置主要是两方面 HttpExchange 是基于 WebClient 的所以我们首先需要配置 WebClient配置 WebClient 的时候也顺便配置了请求的具体地址因为在 HttpExchange 注解中并未指定请求的具体域名端口啥的同时对于 HTTP 请求头等如果需要定制也是通过配置 WebClient 来实现的。由于我们前面提供的 ToDoService 是一个接口所以我们还需要提供一个该接口的实现类当然这个配置完全是套路化模版化的这块就没啥好说了。 全部配置完成后接下来我们就可以在任何需要的地方直接注入 ToDoService 的实例去使用了举一个简单的例子小伙伴们参考下 SpringBootTest class ClientApplicationTests {AutowiredToDoService toDoService;Testvoid contextLoads() {String hello toDoService.hello(javaboy);System.out.println(hello hello);}}好啦一个简单的例子你们不妨体验下。 以后不用 OpenFeign 也能实现声明式服务调用啦
http://www.hkea.cn/news/14444048/

相关文章:

  • 网站字体怎么设置青岛做网站定制
  • 怎么学好网站开发江苏建设教育考试网站
  • 烟台建设银行网站黄骅市旅游景点有哪些
  • 网站管理建设工作报告国外有哪些设计网站推荐
  • 做医药商城网站的公司dede企业网站带留言板后台查询
  • 怎么才服务器上做网站高清图片素材网站推荐
  • 山东省建设文化传媒有限公司网站优秀的wordpress博客
  • 北京做兼职从哪个网站深圳市凡客科技有限公司
  • 济南正规网站制作怎么选择技术培训机构排名前十
  • 二级网站内容建设要求吗河北网站搜索排名优化方案
  • 企业手机网站建设效果济宁做网站的公司
  • 辽宁移动网站赌场网站建站
  • 广告网站留电话整人网络认证网站
  • 免费网站模板带后台网站制作网站建设需要多少钱
  • 网站设计分析案例如何做酒店网站
  • 网站建设 网页设计 的文章网站怎么做百度能搜到
  • 程序员知识网站需要多少钱东莞seo建站优化费用
  • 如何免费建网站大连做网页工作室
  • 做彩票网站需要什么服务器wordpress点击文字弹窗
  • 教育网站建设计划书wordpress小工具缓存
  • 黄岛区城市建设局网站商务网站设计实训报告
  • 现在还有做系统的网站吗wordpress 仪表盘
  • 网站建设开票属于什么服务网络营销方式的图片
  • 蚌埠网站建设网站linux做网站1G内存够不
  • 手机网站被拦截怎么解除任丘哪里做网站
  • 三明网站开发域名注册网站排名
  • 房产公司网站建设网站建设策划书
  • 邵阳建设网站的公司网站每年多少钱
  • 宁夏网站设计公司公司网站建设全包
  • 物流企业网站建设特色mvc5网站开发用户注册