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

上海有哪些做网站国外网站发展建设

上海有哪些做网站,国外网站发展建设,禹城建设局网站,中山手机网站建设哪家好openfeign(*) 简介 官网#xff1a;https://cloud.spring.io/spring-cloud-openfeign/reference/html/Feign是一个声明式的伪HTTP客户端(底层使用RestTemplate)#xff0c;它使编写web服务客户端变得更容易。使用feign#xff0c;只需要创建一个接口并对其添加注解。它具有…openfeign(*) 简介 官网https://cloud.spring.io/spring-cloud-openfeign/reference/html/Feign是一个声明式的伪HTTP客户端(底层使用RestTemplate)它使编写web服务客户端变得更容易。使用feign只需要创建一个接口并对其添加注解。它具有可插入的注释支持(可以使用springmvc的注解)可使用feign注解和JAX-RS注解。Feign还支持可插拔编码器和解码器。feign默认集成了Ribbon默认实现了负载均衡的效果并且spring cloud为feign添加了springmvc注解的支持 OpenFeign调用 1.引入依赖 !-- OpenFeign 依赖-- dependencygroupIdorg.springframework.cloud/groupIdartifactIdspring-cloud-starter-openfeign/artifactId /dependency!-- 项目集成其他依赖 -- !-- web -- dependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-web/artifactId /dependency !-- 健康检查 -- dependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-actuator/artifactId /dependency !-- consul服务注册与发现 -- dependencygroupIdorg.springframework.cloud/groupIdartifactIdspring-cloud-starter-consul-discovery/artifactId /dependency2.配置文件 server.port8787 spring.application.nameCATEGORY # consul注册中心地址 spring.cloud.consul.hostlocalhost spring.cloud.consul.port85003.启动类添加注解EnableFeignClients SpringBootApplication EnableDiscoveryClient EnableFeignClients public class CategoryApplication {}4.编写feign客户端接口,添加注解FeignClient FeignClient(value PRODUCT) // value:服务名 Api(商品客户端接口定义) public interface ProductClient {ApiOperation(简单实现OpenFeign通信)GetMapping(/product)String product();ApiOperation(使用拼接参数?kvk1v2方式传参。需指定RequestParam和属性value)GetMapping(/test)String test(RequestParam(value id) Integer id, RequestParam(value productName) String productName);ApiOperation(使用路劲url/{id}/{productName}传参。需指定PathVariable和属性value)GetMapping(/test1/{id}/{productName})String test1(PathVariable(value id) Integer id, PathVariable(value productName) String productName);ApiOperation(使用对象传递,用JSON方式)PostMapping(/test2)String test2(RequestBody ProductDto productDto); }5.Category服务和Product服务进行feign调用测试 RestController Slf4j public class CategoryController {Autowiredprivate ProductClient productClient;GetMapping(/category)public String category() {log.info(category enter......);// 使用OpenFeign完成服务间的调用//String result productClient.product();// 使用拼接参数?kvk1v2方式传参//String result productClient.test(12, 裙子);// 使用路劲/{id}/{productName}传参//String result productClient.test1(12, 裙子);// 使用对象传递,用JSON方式//String result productClient.test2(new ProductDto(12, 裙子, 37.80, new Date()));// 使用数组传参。了解即可//String result productClient.test3(new Integer[]{1, 2, 3});// 使用集合传参。服务费需要集合定义到对象中(不能直接使用集合形参)。了解即可String result productClient.test4(new Integer[]{1, 2, 3});return category ok!! result;} }RestController Slf4j Api(商品服务) public class ProductController {Value(${server.port})private int port;ApiOperation(简单实现OpenFeign通信)GetMapping(/product)public String product() {log.info(product enter......);return product ok,当前端口号 port;}ApiOperation(使用拼接参数?kvk1v2方式传参)GetMapping(/test)public String test(RequestParam Integer id, RequestParam String productName) {log.info(test enter....id{},productName{}, id, productName);return product ok,当前端口号 port;}ApiOperation(使用路劲url/{id}/{productName}传参)GetMapping(/test1/{id}/{productName})public String test1(PathVariable Integer id, PathVariable String productName) {log.info(test1 enter....id{},productName{}, id, productName);return product ok,当前端口号 port;}ApiOperation(使用对象传递,用JSON方式)PostMapping(/test2)public String test2(RequestBody ProductDto productDto) {log.info(test enter....productDto{}, productDto);return product ok,当前端口号 port;}ApiOperation(使用数组传参。了解即可)GetMapping(/test3)public String test3(Integer[] ids) {for (Integer id : ids) {log.info(id:{},id);}return product ok,当前端口号 port;}ApiOperation(通过集合传参,不能直接使用List等集合接收,需要用对象定义。了解即可)GetMapping(/test4)public String test4(ProductIdsDTO productIdsDTO) {productIdsDTO.getIds().forEach(id - log.info(id:{}, id));return product ok,当前端口号 port;} }6.feign接口传参 需要指定传参格式OpenFeign是一个伪的HTTP客户端底层用的RestTemplate所以需要在feign接口中告诉它如何去传参否则会报错1.通过?拼接传参。例如url/?kvk1k2GetMapping(/test)String test(RequestParam(value id) Integer id, RequestParam(value productName) String productName); 备注需要指定RequestParam注解和value属性值2.通过路径传参。例如url/{id}/{productName}GetMapping(/test1/{id}/{productName})String test1(PathVariable(value id) Integer id, PathVariable(value productName) String productName); 备注需要指定PathVariable注解和value属性值3.通过对象传参推荐使用JSON格式PostMapping(/test2)String test2(RequestBody ProductDto productDto); 备注需要指定RequestBody注解4.使用数组传参和集合传参了解即可数组传参feign接口定义GetMapping(/test3)String test3(RequestParam Integer[] ids);备注必须指定RequestParam注解使用集合传参跟数组传参定义一致。但服务方形参接收定义不一样详情见5.feign接口测试示例OpenFeign接口调用超时设置 OpenFeign接口调用超时时间默认为1秒当服务方执行时间超过1秒时会报错 There was an unexpected error (typeInternal Server Error, status500). Read timed out executing GET http://PRODUCT/product修改OpenFeign默认超时时间配置 # 修改某个服务(PRODUCT)的OpenFeign默认超时时间(默认为1秒) # PRODUCT:服务名。指定服务连接超时单位毫秒 feign.client.config.PRODUCT.connect-timeout3000 # PRODUCT:服务名。指定服务等待超时单位毫秒 feign.client.config.PRODUCT.read-timeout3000# 修改所有服务的OpenFeifn默认超时时间(默认为1秒) #feign.client.config.default.connect-timeout3000 #feign.client.config.default.read-timeout3000OpenFeign调用日志 OpenFeign日志级别 - feign对日志的处理非常灵活,可以为每个feign客户端指定日志记录策略,feign日志的打印只会DEBUG级别做出响应- 可以为feign客户端配置各自的logger.level对象日志级别有如下几种- NONE不记录任何日志(默认)- BASIC仅记录请求方法url,响应状态码及执行时间- HEADERS记录BASIC级别的基础上记录请求和响应的header- FULL记录请求和响应的headerbody及元数据开启日志打印 # 开启某个feign客户端(PRODUCT)的日志打印 # feign.client.config.PRODUCT.logger-levelfull # 开启所有的feign客户端的日志打印 feign.client.config.default.logger-levelfull# 指定包路径日志打印级别(指定feign客户端的包日志级别必须是debug) logging.level.com.coolw.cloud.study.feigndebug日志信息如 22-01-12 22:51:04.139 DEBUG 8324 --- [nio-8787-exec-1] c.coolw.cloud.study.feign.ProductClient : [ProductClient#product] --- GET http://PRODUCT/product HTTP/1.1 2022-01-12 22:51:04.139 DEBUG 8324 --- [nio-8787-exec-1] c.coolw.cloud.study.feign.ProductClient : [ProductClient#product] --- END HTTP (0-byte body)......2022-01-12 22:51:05.410 DEBUG 8324 --- [nio-8787-exec-1] c.coolw.cloud.study.feign.ProductClient : [ProductClient#product] --- HTTP/1.1 200 (1267ms) 2022-01-12 22:51:05.410 DEBUG 8324 --- [nio-8787-exec-1] c.coolw.cloud.study.feign.ProductClient : [ProductClient#product] connection: keep-alive 2022-01-12 22:51:05.410 DEBUG 8324 --- [nio-8787-exec-1] c.coolw.cloud.study.feign.ProductClient : [ProductClient#product] content-length: 33 2022-01-12 22:51:05.410 DEBUG 8324 --- [nio-8787-exec-1] c.coolw.cloud.study.feign.ProductClient : [ProductClient#product] content-type: text/plain;charsetUTF-8 2022-01-12 22:51:05.411 DEBUG 8324 --- [nio-8787-exec-1] c.coolw.cloud.study.feign.ProductClient : [ProductClient#product] date: Wed, 12 Jan 2022 14:51:05 GMT 2022-01-12 22:51:05.411 DEBUG 8324 --- [nio-8787-exec-1] c.coolw.cloud.study.feign.ProductClient : [ProductClient#product] keep-alive: timeout60 2022-01-12 22:51:05.411 DEBUG 8324 --- [nio-8787-exec-1] c.coolw.cloud.study.feign.ProductClient : [ProductClient#product] 2022-01-12 22:51:05.413 DEBUG 8324 --- [nio-8787-exec-1] c.coolw.cloud.study.feign.ProductClient : [ProductClient#product] product ok,当前端口号8788 2022-01-12 22:51:05.413 DEBUG 8324 --- [nio-8787-exec-1] c.coolw.cloud.study.feign.ProductClient : [ProductClient#product] --- END HTTP (33-byte body)
http://www.sadfv.cn/news/117507/

相关文章:

  • 北京网站建设公司网站优化韩式风格的网页设计欣赏
  • 卖印花图案设计网站娱乐城网站建设
  • 取消网站备案网站建设外文版政策文件
  • 济南网站建设制作设计长沙网站搜索排名
  • 国外企业网站建设模型网站制作价格 上海
  • qt做网站cms进行网站开发
  • 用html做一号店网站怎么做pc网站建设需要提供哪些资料
  • 做公司网站要什么资料网站开发多少钱一天是
  • 做国内网站花费2024年重大新闻摘抄
  • 网站修改关键词企业网站建设 总结
  • 网站代更新沈阳妇科医院排名前十有哪些
  • 用html5制作个人网站网站建设岗位廉政风险防控
  • 自适应型网站建设推荐解决网站兼容性问题
  • 一般做公司网站需要哪几点国外网站做网上生意哪个好
  • wood怎么做网站结构图node.js做的网站
  • 网站服务器及运营维护公告学校局域网站建设
  • 天津网站建设定制公司如何编程做网站
  • 网站建设的含盖哪方面ix空间搭建wordpress
  • logo生成关键词排名优化公司地址
  • 广州网站建设公司网站阿里云虚拟主机配置wordpress
  • 无锡市住房和城乡建设部网站网站域名备案授权书
  • 国外的域名注册网站哪个好蜂鸟摄影网官网
  • 东莞微网站制作公司平阴县网站建设
  • 黄石城乡建设网站网站设计和平面设计
  • 法律网站建设去西安需要隔离吗
  • 网站搭建的步骤公司注销流程及需要的材料
  • 专门做ppt会员网站dw做的网站乱码
  • 西安网站维护托管使用本地主机做网站
  • 什么是企业邮箱怎么申请seo关键词分析
  • 手机百度网站建设网站制作公司怎么赚钱