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

php开发网站优势天元建设集团有限公司第二公司

php开发网站优势,天元建设集团有限公司第二公司,wordpress视频插件a vi,制作网页一般需要兼容哪些网站一、应用场景 Spring Cloud OpenFeign 是一个声明式的 HTTP 客户端#xff0c;旨在简化微服务之间的通信。它使得开发者能够通过简单的接口定义和注解来调用 RESTful API#xff0c;极大地减少了样板代码。以下是一些典型的应用场景#xff1a; 微服务间调用#xff1a;在…一、应用场景 Spring Cloud OpenFeign 是一个声明式的 HTTP 客户端旨在简化微服务之间的通信。它使得开发者能够通过简单的接口定义和注解来调用 RESTful API极大地减少了样板代码。以下是一些典型的应用场景 微服务间调用在微服务架构中服务之间需要频繁地进行 HTTP 调用OpenFeign 提供了一种简洁的方式来实现这些调用。RESTful API 客户端当需要与外部 RESTful API 进行交互时OpenFeign 可以帮助快速构建客户端。服务发现与 Eureka 等服务发现组件结合使用时OpenFeign 可以自动处理服务的负载均衡和故障转移。动态配置在需要根据不同环境或条件动态配置请求时OpenFeign 提供了灵活的解决方案。 二、原理 Spring Cloud OpenFeign 的核心原理是利用 Java 的动态代理和注解来简化 HTTP 请求的构建。开发者只需定义接口并使用注解描述请求的细节如 HTTP 方法、路径、参数等在运行时OpenFeign 会生成实现类并处理请求。 主要组件 Feign Client定义服务接口使用注解描述请求。Request Interceptor用于在请求发送之前对请求进行修改如添加 header。Encoder/Decoder用于请求和响应的编码和解码支持 JSON、XML 等格式。错误处理提供自定义的错误处理机制以便在请求失败时进行处理。 三、代码示例 1. 添加依赖 在 Maven 项目的 pom.xml 中添加 OpenFeign 依赖 ?xml version1.0 encodingUTF-8? project xmlnshttp://maven.apache.org/POM/4.0.0xmlns:xsihttp://www.w3.org/2001/XMLSchema-instancexsi:schemaLocationhttp://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsdparentartifactIdspringcloud-demo/artifactIdgroupIdcom.et/groupIdversion1.0-SNAPSHOT/version/parentmodelVersion4.0.0/modelVersionartifactIdspring-cloud-openfeign/artifactIdpropertiesmaven.compiler.source17/maven.compiler.sourcemaven.compiler.target17/maven.compiler.target/propertiesdependenciesdependencygroupIdorg.springframework.cloud/groupIdartifactIdspring-cloud-starter-openfeign/artifactId/dependencydependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-web/artifactId/dependencydependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-actuator/artifactId/dependencydependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-test/artifactIdscopetest/scope/dependencydependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-aop/artifactId/dependencydependencygroupIdorg.projectlombok/groupIdartifactIdlombok/artifactId/dependency/dependencies /project 2. 启用 OpenFeign 在 Spring Boot 应用的主类上添加 EnableFeignClients 注解 package com.et;import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.cloud.openfeign.EnableFeignClients;SpringBootApplication EnableFeignClients public class MyApplication {public static void main(String[] args) {SpringApplication.run(MyApplication.class, args);} } 3. 定义 Feign Client 创建一个 Feign Client 接口使用注解定义请求 package com.et.service;import com.et.model.User; import org.springframework.cloud.openfeign.FeignClient; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PathVariable;FeignClient(name user-service, url http://localhost:8088) public interface UserServiceClient {GetMapping(/user/{id})User getUserById(PathVariable(id) Long id); } 4. 使用 Feign Client 在服务中使用 Feign Client package com.et.controller;import com.et.model.User; import com.et.service.UserService; import jakarta.servlet.http.HttpServletRequest; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RestController;RestController public class UserController {Autowiredprivate UserService userService;GetMapping(/users/{id})public User getUser(PathVariable Long id) {return userService.getUser(id);}GetMapping(/user/{id})public User user(PathVariable Long id, HttpServletRequest request) {// get username and password from headerString userHeader request.getHeader(user);String passwordHeader request.getHeader(password);// print paramsSystem.out.println(User Header: userHeader);System.out.println(Password Header: passwordHeader);User user new User();user.setId(id);user.setEmail(xxxxx.com);user.setName(test);return user;} } 四、拦截器 OpenFeign 允许你使用请求拦截器来修改请求例如添加 header、日志记录等。以下是如何实现一个简单的请求拦截器 1. 创建拦截器 package com.et.interceptor;import feign.RequestInterceptor; import org.springframework.beans.factory.annotation.Value; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration;/*** author liuhaihua* version 1.0* ClassName JSONPlaceHolderInterceptor* Description todo* date 2024/12/23/ 14:18*/ Configuration public class JSONPlaceHolderInterceptor {Value(${feign.client.config.default.username})private String username;Value(${feign.client.config.default.password})private String password;Beanpublic RequestInterceptor requestInterceptor() {return requestTemplate - {requestTemplate.header(user, username);requestTemplate.header(password, password);requestTemplate.header(Accept, application/json);};} } 2. 在 Feign Client 中使用拦截器 server:port: 8088 feign:client:config:default:username: xxxxpassword: passwordrequestInterceptors:com.et.interceptor.JSONPlaceHolderInterceptor 以上只是一些关键代码所有代码请参见下面代码仓库 代码仓库 https://github.com/Harries/springcloud-demo(Spring Cloud Openfeign) 五、测试 启动Spring CLoud应用访问http://127.0.0.1:8088/users/1返回结果如下 {id:1,name:test,email:xxxxx.com} 查看控制台发现获得拦截器设置的值 User Header: xxxx Password Header: password l六、总结 Spring Cloud OpenFeign 是一个强大的工具能够简化微服务之间的 HTTP 调用。通过声明式的方式开发者可以快速构建 RESTful 客户端减少样板代码提高开发效率。结合请求拦截器OpenFeign 还可以灵活地处理请求的各种需求如身份验证和日志记录。 在微服务架构中使用 OpenFeign 可以有效地提高服务间的通信效率和可维护性是构建现代分布式系统的重要组成部分。通过简单的配置和注解开发者能够专注于业务逻辑而不必过多关注底层的 HTTP 请求细节。
http://www.lakalapos1.cn/news/48047/

相关文章:

  • 中高端社交网站建设服务商网站系统怎么用
  • 叫人建设网站要注意什么问题ppt网站源码
  • 自己做的网站主页打开速度个人租车网站源码
  • 做服装的外贸网站安徽合肥网站制作
  • 网站虚拟主持重庆建设摩托车股份有限公司官网
  • 网站建设下一步打算html5自学教程
  • 馆陶网站西宁建设厅培训中心网站
  • 个人网站 名字江西赣州
  • 公司高端网站设计公司做推送的网站除了秀米还有
  • 郑州做网站的专业公司在线制作网页网站
  • 如何做测评视频网站公司网站建设公司
  • 崇信县网站留言做网址导航网站收益
  • 广州住房与建设网站wordpress 分类信息插件
  • c 网站建设可视化实现自助下单网站咋做
  • 广东建设银行网站seo网页推广
  • 重庆公司社保开户流程做搜索引擎优化的企业
  • 浏览小城镇建设的网站网络专业的网站建设价格低
  • 西安外贸建站北京市建设资格与执业资格注册中心网站
  • 成都网站怎么推广网站后台数据库管理
  • 中国建设人才服务信息网是正规网站进博会入口
  • 网站开发得花多少钱成都网站改版优化
  • 网站建设下什么科目在线个人网页生成
  • 网站用什么语言好装修公司网络营销怎么做
  • 哪网站建设好丹阳网站设计公司
  • 襄汾县住房和建设局网站中学生网站源码
  • 桂林网站建设凡森网络网站搭建费用明细
  • 极简风格 网站市场营销策略分析案例
  • 西安建站之家网络科技有限公司广州最大的跨境电商公司排名
  • 广东企业网站建设多少钱服务器调用wordpress
  • 做老师讲课视频的教育网站网站总体设计方案