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

个人网站空间价格seo优化工作内容做什么

个人网站空间价格,seo优化工作内容做什么,wap网站建设是什么,个人可以做聊天网站备案吗1.什么是Feign Feign是一种声明式、模板化的HTTP客户端#xff0c;可用于调用HTTP API实现微服务之间的远程服务调用。它的特点是使用少量的配置定义服务客户端接口#xff0c;可以实现简单和可重用的RPC调用。 先来看我们以前利用RestTemplate发起远程调用的代码#xff…1.什么是Feign Feign是一种声明式、模板化的HTTP客户端可用于调用HTTP API实现微服务之间的远程服务调用。它的特点是使用少量的配置定义服务客户端接口可以实现简单和可重用的RPC调用。 先来看我们以前利用RestTemplate发起远程调用的代码 存在下面的问题 •代码可读性差编程体验不统一 •参数复杂URL难以维护 2. Feign远程调用 2.1. Feign替代RestTemplate Fegin的使用步骤如下 2.1.1. 引入依赖 我们在order-service服务的pom文件中引入feign的依赖 dependencygroupIdorg.springframework.cloud/groupIdartifactIdspring-cloud-starter-openfeign/artifactId /dependency 2.1.2. 添加注解 在order-service的启动类添加注解开启Feign的功能 2.1.3. 编写Feign客户端 在order-service中新建一个接口内容如下 package cn.itcast.order.client;import cn.itcast.order.pojo.User; import org.springframework.cloud.openfeign.FeignClient; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PathVariable;FeignClient(userservice) public interface UserClient {GetMapping(/user/{id})User findById(PathVariable(id) Long id); } 这个客户端主要是基于SpringMVC的注解来声明远程调用的信息比如 服务名称userservice 请求方式GET 请求路径/user/{id} 请求参数Long id 返回值类型User 这样Feign就可以帮助我们发送http请求无需自己使用RestTemplate来发送了。 2.1.4. 测试 修改order-service中的OrderService类中的queryOrderById方法使用Feign客户端代替RestTemplate 是不是看起来优雅多了。 5总结 使用Feign的步骤 ① 引入依赖 ② 添加EnableFeignClients注解 ③ 编写FeignClient接口 ④ 使用FeignClient中定义的方法代替RestTemplate 2.2 Feign的自定义配置 Feign可以支持很多的自定义配置如下表所示 类型作用说明feign.Logger.Level修改日志级别包含四种不同的级别NONE、BASIC、HEADERS、FULLfeign.codec.Decoder响应结果的解析器http远程调用的结果做解析例如解析json字符串为java对象feign.codec.Encoder请求参数编码将请求参数编码便于通过http请求发送feign. Contract支持的注解格式默认是SpringMVC的注解feign. Retryer失败重试机制请求失败的重试机制默认是没有不过会使用Ribbon的重试 一般情况下默认值就能满足我们使用如果要自定义时只需要创建自定义的Bean覆盖默认Bean即可。 下面以日志为例来演示如何自定义配置。 2.2.1. 配置文件方式 基于配置文件修改feign的日志级别可以针对单个服务 feign: client:config: userservice: # 针对某个微服务的配置loggerLevel: FULL # 日志级别 也可以针对所有服务 feign: client:config: default: # 这里用default就是全局配置如果是写服务名称则是针对某个微服务的配置loggerLevel: FULL # 日志级别 而日志的级别分为四种 NONE不记录任何日志信息这是默认值。 BASIC仅记录请求的方法URL以及响应状态码和执行时间 HEADERS在BASIC的基础上额外记录了请求和响应的头信息 FULL记录所有请求和响应的明细包括头信息、请求体、元数据。 2.2.2. Java代码方式 也可以基于Java代码来修改日志级别先声明一个类然后声明一个Logger.Level的对象 public class DefaultFeignConfiguration {Beanpublic Logger.Level feignLogLevel(){return Logger.Level.BASIC; // 日志级别为BASIC} } 如果要全局生效将其放到启动类的EnableFeignClients这个注解中 EnableFeignClients(defaultConfiguration DefaultFeignConfiguration .class) 如果是局部生效则把它放到对应的FeignClient这个注解中 FeignClient(value userservice, configuration DefaultFeignConfiguration .class) 3. Feign最佳实践 所谓最近实践就是使用过程中总结的经验最好的一种使用方式。 自习观察可以发现Feign的客户端与服务提供者的controller代码非常相似 feign客户端 UserController 有没有一种办法简化这种重复的代码编写呢 当然有 3.1. 继承方式不推荐 一样的代码可以通过继承来共享 1定义一个API接口利用定义方法并基于SpringMVC注解做声明。 2Feign客户端和Controller都集成改接口 优点 简单 实现了代码共享 缺点 服务提供方、服务消费方紧耦合 参数列表中的注解映射并不会继承因此Controller中必须再次声明方法、参数列表、注解 3.2. 抽取方式 将Feign的Client抽取为独立模块并且把接口有关的POJO、默认的Feign配置都放到这个模块中提供给所有消费者使用。 例如将UserClient、User、Feign的默认配置都抽取到一个feign-api包中所有微服务引用该依赖包即可直接使用。 3.3. 基于抽取的最佳实践 3.3.1. 抽取 首先创建一个module命名为feign-api 项目结构 在feign-api中然后引入feign的starter依赖 dependencygroupIdorg.springframework.cloud/groupIdartifactIdspring-cloud-starter-openfeign/artifactId /dependency 然后order-service中编写的UserClient、User、DefaultFeignConfiguration都复制到feign-api项目中 3.3.2. 在order-service中使用feign-api 首先删除order-service中的UserClient、User、DefaultFeignConfiguration等类或接口。 在order-service的pom文件中中引入feign-api的依赖 dependencygroupIdcn.itcast.demo/groupIdartifactIdfeign-api/artifactIdversion1.0/version /dependency 修改order-service中的所有与上述三个组件有关的导包部分改成导入feign-api中的包 3.3.3. 重启测试 重启时发现服务报错 这是因为UserClient现在在cn.itcast.feign.clients包下 而order-service的EnableFeignClients注解是在cn.itcast.order包下不在同一个包无法扫描到UserClient。order-service的启动类默认扫描cn.itcast.order包 3.3.4. 解决扫描包的问题 方式1不推荐 指定Feign应该扫描的包 EnableFeignClients(basePackages cn.itcast.feign.clients) 方式二 指定需要加载的Client接口 EnableFeignClients(clients {UserClient.class}) 3.3.5. 重启 重启测试结果 成功
http://www.dnsts.com.cn/news/128275.html

相关文章:

  • 兼职做问卷调查的网站好简历免费制作
  • 网站谁做的比较好看无法打开网站若要访问本地iis网站必须安装下列iis组件
  • 太原网站优化哪家专业网站怎么做404 301
  • 北海做网站的公司做网站时候如果添加微信代码
  • 百度网站排名优化注册公司验资需要多少钱
  • 没有网站也可以做推广吗山东兴华建设集团有限公司网站
  • 网站建设结算系统查域名ip地址查询
  • 网站的建设目标有哪些百度关键词策划和seo的优化
  • 电子商务html网站模板昆明做公司网站
  • 网站的颜色做网站容易找工作吗
  • 织梦cms网站地图下载小程序
  • 软件开发阶段包括哪几个阶段seo推广平台
  • 龙斗seo博客海口网站优化
  • 租用网站的服务器自学网站开发条件
  • 不需要丢链接可以百度收录的网站网站建设方案的需求分析
  • 云浮新兴县做网站wordpress 发邮件插件
  • 中投中原建设有限公司官方网站打死都不想干电商运营了
  • 宜昌市建设厅官方网站邢台手机网站建设报价
  • 网站建设目的要求浏览器下载安装2023最新版
  • 统一汤达人选择她做汤面活动网站长治网站制作一般多少钱
  • 定制建网站莉莉卡是哪个网站做的
  • 临沂建设局网站linux系统中wordpress
  • 沈阳电力建设总公司网站可以观看国外短视频的app
  • 工作室网站域名南宁公司的网站建设
  • 行业网站推广方案个人业务网站源码php
  • 北京网站设计制作招聘信息网站需要写哪些内容吗
  • 河南建设建设监理协会网站怎样把域名和做的网站连接
  • 做网站需要做哪些东西怎样在自己网站上传产品
  • 网站开发 附加协议东莞营销专业网站建设
  • 厦门网站建设哪家好出口电商网站建设程序