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

贺州网站建设怎么做网站备案

贺州网站建设,怎么做网站备案,做网站 二维码登录,淘宝api wordpress文章目录 前言正文一、项目结构二、服务调用链路说明三、Rpc调用链路说明四、项目代码4.1 client 模块中的feign接口4.2 client 中的rest接口4.3 client 中的启动类4.4 server中的rest接口4.5 server中的配置文件 五、调试 附录附1#xff1a;本系列文章链接 前言 本篇是Spri… 文章目录 前言正文一、项目结构二、服务调用链路说明三、Rpc调用链路说明四、项目代码4.1 client 模块中的feign接口4.2 client 中的rest接口4.3 client 中的启动类4.4 server中的rest接口4.5 server中的配置文件 五、调试 附录附1本系列文章链接 前言 本篇是SpringCloud原理系列的 OpenFeign 模块的第一篇。主要内容是搭建一个极简的Spring Cloud OpenFeign 调用链路。 项目代码仓库地址https://gitee.com/fengsoshuai/springcloud-openfeign-demo 正文 本次项目使用java 17spring cloud 4.0.4springboot 3.1.4。 maven 环境编译idea开发。 一、项目结构 本次项目分为3个模块。 二、服务调用链路说明 使用IDEA/Postman/Apifox等工具进行触发client服务的接口client内部通过feign调用server接口server执行业务逻辑server返回执行结果到clientclient返回调用结果到触发方 三、Rpc调用链路说明 两个服务之间使用远程调用。 基本都是需要URL请求头请求报文请求方式Get\Post 等等基本信息的。 下图简单说明rpc调用时的链路。 其中调用方相当于发起远程调用的一方对比本项目的话相当于使用postman等工具触发后client模块的操作。 只是特殊的一点在于调用方中的红色虚线框内的部分被openFeign 封装了不再是我们手动去处理他们。而这也正是本系列研究的重点。 中间部分就是形如 RestTemplateWebClient的功能只是发出请求接受响应。 服务方就是一个提供rest接口的普通应用。 四、项目代码 本文全部代码托管在gitte仓库中地址已经在文章开头给出。 这里只粘贴出比较重要的几个文件。 4.1 client 模块中的feign接口 package org.feng.feigns;import org.feng.common.dto.HelloRequest; import org.feng.common.dto.HelloResponse; import org.springframework.cloud.openfeign.FeignClient; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody;/*** hello-feign客户端接口** version v1.0* author: fengjinsong* date: 2023年11月20日 21时25分*/ FeignClient(name helloFeignClient, url http://localhost:10080) public interface HelloFeignClient {PostMapping(/hello/post)HelloResponse postHello(RequestBody HelloRequest helloRequest); } 4.2 client 中的rest接口 package org.feng.controller;import jakarta.annotation.Resource; import jakarta.servlet.http.HttpServletRequest; import lombok.extern.slf4j.Slf4j; import org.feng.common.dto.HelloRequest; import org.feng.common.dto.HelloResponse; import org.feng.feigns.HelloFeignClient; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import org.springframework.web.context.request.RequestContextHolder; import org.springframework.web.context.request.ServletRequestAttributes;import java.time.LocalDateTime; import java.util.Objects;/*** HelloFeignClientController** version v1.0* author: fengjinsong* date: 2023年11月20日 21时45分*/ Slf4j RestController RequestMapping(/helloclient) public class HelloFeignClientController {Resourceprivate HelloFeignClient helloFeignClient;PostMapping(/postHello)public HelloResponse postHello(RequestBody HelloRequest helloRequest) {if(Objects.isNull(helloRequest.getLocalDateTime())){helloRequest.setLocalDateTime(LocalDateTime.now());}ServletRequestAttributes requestAttributes (ServletRequestAttributes) RequestContextHolder.getRequestAttributes();HttpServletRequest request requestAttributes.getRequest();String localAddr request.getLocalAddr();int serverPort request.getServerPort();helloRequest.setHost(localAddr);helloRequest.setPort(serverPort);log.info(helloRequest {}, helloRequest);return helloFeignClient.postHello(helloRequest);} } 4.3 client 中的启动类 指定扫描包为 org.feng.feigns。 package org.feng;import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.cloud.openfeign.EnableFeignClients;EnableFeignClients(basePackages org.feng.feigns) SpringBootApplication public class ClientApplication {public static void main(String[] args) {SpringApplication.run(ClientApplication.class, args);}} 4.4 server中的rest接口 package org.feng.controller;import lombok.extern.slf4j.Slf4j; import org.feng.common.dto.HelloRequest; import org.feng.common.dto.HelloResponse; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController;/*** openfeign 控制器** author feng*/ Slf4j RequestMapping(/hello) RestController public class HelloOpenFeignController {PostMapping(/post)public HelloResponse postHello(RequestBody HelloRequest helloRequest) {log.info(request{}, helloRequest);HelloResponse response new HelloResponse();response.setTitle(helloRequest.getTitle());response.setLocalDateTime(helloRequest.getLocalDateTime());response.setFromHost(helloRequest.getHost());response.setFromPort(helloRequest.getPort());log.info(response: {}, response);return response;} } 4.5 server中的配置文件 spring.application.nameopenserver server.port10080五、调试 启动server 和 client 服务。 在idea中触发client 的服务 POST http://localhost:8080/helloclient/postHello Content-Type: application/json{title: 托尔斯泰 }响应报文如下 {fromHost: 127.0.0.1,fromPort: 8080,title: 托尔斯泰,localDateTime: 2023-11-21T14:07:18.537384 }server中的服务打印出来的日志如下 以上就是通过onepfeign 进行rpc 调用的完整示例了。 可以看到我们只在client中定义了接口并没有实现。但是在调用时没有报错同时也调用到了server服务。而这就是spring cloud 中的 openfeign 封装了远程调用帮我们处理的部分也是我们后续研究其原理的核心部分。 附录 附1本系列文章链接 SpringCloud原理-OpenFeign篇一、Hello OpenFeign项目示例 SpringCloud原理-OpenFeign篇二、OpenFeign包扫描和FeignClient的注册原理 SpringCloud原理-OpenFeign篇三、FeignClient的动态代理原理
http://www.zqtcl.cn/news/278581/

相关文章:

  • 佛山公众平台网站推广多少钱wordpress如何调用分类目录
  • 网站推广应该注意什么信息发布平台推广
  • 官方网站案例做网站私活在哪接
  • 做网站滨州wordpress 不同域名
  • 找人做设计的网站广州做网站(信科网络)
  • 如何选择网站做站方向青之峰网站建设
  • 福州哪家网站制作设计高端还实惠设计logo的理念
  • 吉林市网站建设促销式软文案例
  • 三门峡市建设局网站网站开发费用是否资本化
  • 建设部网站官网 施工许可杭州萧山网站开发
  • 福建省建设资格注册管理中心网站竹子建站怎么样
  • 想做一个什么样的网站网站建设功能评价指标
  • 网站建设渠道合作友情链接是免费的吗
  • wordpress如何制作网站网站建设及推广方案ppt
  • 关于建设门户网站的通知重庆刮刮卡制作
  • 网站建设和维护工作内容凡科网免费建站步骤及视频
  • 如何用c 做网站最新疫苗接种最新消息
  • 营销型网站建设报价wordpress 注册 登录界面
  • 网站编辑器哪个好黄骅网站建设价格
  • 爱站工具包官网下载国外cdn
  • 郑州便宜网站建设做网站横幅的图片多大
  • 网站建设的未来wordpress防黑客插件
  • 个人备案网站可以做支付吗做娱乐新闻的网站有哪些
  • 国家建设部网站网站导航如何做半透明
  • 长治网站设计制作网站网站是用什么软件做的
  • wordpress成长记录网站模版市场推广方案ppt
  • 外贸网站建设560wordpress 在线音乐播放器
  • 大连哪里有手机自适应网站建设维护交互式网站开发技术asp
  • 潍坊做网站多少钱个人业务网站带后台
  • 网站建设灬金手指科杰全部游戏免费(试玩)