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

做类似交易猫的网站网站开发过程的基本环节

做类似交易猫的网站,网站开发过程的基本环节,网站制作昆山,济南装修网Feign简介#xff1a; Feign是一种声明式、模板化的HTTP客户端。在Spring Cloud中使用Feign, 我们可以做到使用HTTP请求远程服务时能与调用本地方法一样的编码体验。 Feign是在RestTemplate基础上封装的#xff0c;使用注解的方式来声明一组与服务提供者Rest接口所对应的本地…Feign简介 Feign是一种声明式、模板化的HTTP客户端。在Spring Cloud中使用Feign, 我们可以做到使用HTTP请求远程服务时能与调用本地方法一样的编码体验。 Feign是在RestTemplate基础上封装的使用注解的方式来声明一组与服务提供者Rest接口所对应的本地Java API接口方法。 Feign将远程Rest接口抽象成一个声明式的FeignClientJava API客户端并且负责完成FeignClient客户端和服务提供方的Rest接口绑定。 整体目录 feignconsumer消费方代码 为了让Feign知道在调用方法时应该向哪个地址发请求以及请求需要带哪些参数我们需要定义一个接口Spring Cloud应用在启动时Feign会扫描标有FeignClient注解的接口生成代理并注册到Spring容器中。生成代理时Feign会为每个接口方法创建一个RequetTemplate对象该对象封装了HTTP请求需要的全部信息请求参数名、请求方法等信息都是在这个过程中确定的Feign的模板化就体现在这里. UserClient package com.tt.consumer.client;import org.springframework.cloud.openfeign.FeignClient; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PathVariable;/*** 有关消费者client,配置需要调用服务者的名字*/ FeignClient(name tt-sc-feign-provide) //对应的要调用提供者服务名spring.application.name public interface UserClient {/*** 通过用户id获取用户* param userId* return*/GetMapping(/user/getUser/{userId})//对应要调用提供者的controllerString getUser(PathVariable(userId) String userId); }FeignConsumerController package com.tt.consumer.controller;import com.tt.consumer.client.UserClient; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.springframework.beans.factory.annotation.Value; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController;import javax.annotation.Resource;/*** 平台controller业务逻辑引入client出发消费者调用提供者*/ Api(tags 用户模块) RestController RequestMapping(user) public class FeignConsumerController {Value(${server.port})private String port;Resourceprivate UserClient userClient;/*** 通过用户ID获取用户* param userId* return*/ApiOperation(value 根据用户ID查询用户)GetMapping(/getUserInfo/{userId})public String getUserInfo(PathVariable(userId) String userId){String user userClient.getUser(userId);return String.format(【%s-Demo消费者】调用Feign接口返回值 %s, port, user);}} NacosFeignConsumerApplication package com.tt.consumer;import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.cloud.client.discovery.EnableDiscoveryClient; import org.springframework.cloud.openfeign.EnableFeignClients; /*** 代表自己是一个服务消费者*/ SpringBootApplication //声明此服务可作为消费者使用配置feign客户端目录 EnableFeignClients(basePackages com.tt.consumer.client) public class NacosFeignConsumerApplication {public static void main(String[] args) {SpringApplication.run(NacosFeignConsumerApplication.class, args);} } application-dev.yml未配置信息bootstrap.yml如下 server:port: 8083 spring:profiles:active: devapplication:name: tt-sc-feign-consumercloud:nacos:username: nacospassword: nacosconfig:server-addr: 127.0.0.1:8848file-extension: ymldiscovery:server-addr: 127.0.0.1:8848pom.xml ?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/artifactIdgroupIdcom.example/groupIdversion0.0.1-SNAPSHOT/version/parentmodelVersion4.0.0/modelVersionartifactIdfeignconsumer/artifactId dependencies!-- 引入SpringCloud的Nacos server依赖 --!--服务发现pom--dependencygroupIdcom.alibaba.cloud/groupIdartifactIdspring-cloud-starter-alibaba-nacos-discovery/artifactIdversion2.2.3.RELEASE/version/dependency!-- feign --dependencygroupIdorg.springframework.cloud/groupIdartifactIdspring-cloud-starter-openfeign/artifactIdversion2.2.1.RELEASE/version/dependencydependencygroupIdcom.alibaba.cloud/groupIdartifactIdspring-cloud-starter-alibaba-nacos-config/artifactIdversion2.2.3.RELEASE/version/dependencydependencygroupIdio.swagger/groupIdartifactIdswagger-annotations/artifactIdversion1.5.20/versionscopecompile/scope/dependency/dependencies/projectfeignprovide提供方代码 NacosFeignProvideApplication package com.tt.feignprovide;import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.cloud.client.discovery.EnableDiscoveryClient; /*** 服务提供方-供feignclient使用**/ EnableDiscoveryClient SpringBootApplication public class NacosFeignProvideApplication {public static void main(String[] args) {SpringApplication.run(NacosFeignProvideApplication.class, args);}} UserProvideController package com.tt.feignprovide.controller;import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.springframework.beans.factory.annotation.Value; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController;Api(tags 用户模块) RestController RequestMapping(user) public class UserProvideController {Value(${server.port})private String port;/*** 通过用户ID获取用户* param userId* return*/ApiOperation(value 根据用户ID查询用户)GetMapping(/getUser/{userId})public String getUser(PathVariable(userId) String userId){return String.format(【%s-服务提供者】%s, port, userId);}} application-dev.yml未配置信息bootstrap.yml如下 server:port: 8082 spring:profiles:active: devapplication:name: tt-sc-feign-providecloud:nacos:username: nacospassword: nacosconfig:server-addr: 192.168.10.107:8848file-extension: ymldiscovery:server-addr: 192.168.10.107:8848 pom.xml ?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/artifactIdgroupIdcom.example/groupIdversion0.0.1-SNAPSHOT/version/parentmodelVersion4.0.0/modelVersion !-- packagingpom/packaging--artifactIdfeignprovide/artifactIddependencies!-- nacos 客户端 作为 注册与发现--dependencygroupIdcom.alibaba.cloud/groupIdartifactIdspring-cloud-starter-alibaba-nacos-discovery/artifactIdversion2.2.3.RELEASE/version/dependency!-- nacos 配置中心 --dependencygroupIdcom.alibaba.cloud/groupIdartifactIdspring-cloud-starter-alibaba-nacos-config/artifactIdversion2.2.3.RELEASE/version/dependency!-- feign 调用服务接口 --dependencygroupIdorg.springframework.cloud/groupIdartifactIdspring-cloud-starter-openfeign/artifactIdversion2.2.1.RELEASE/version/dependencydependencygroupIdio.swagger/groupIdartifactIdswagger-annotations/artifactIdversion1.5.20/versionscopecompile/scope/dependency/dependencies/project父类pom.xml ?xml version1.0 encodingUTF-8? project xmlnshttp://maven.apache.org/POM/4.0.0 xmlns:xsihttp://www.w3.org/2001/XMLSchema-instancexsi:schemaLocationhttp://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsdmodelVersion4.0.0/modelVersionpackagingpom/packagingmodulesmodulecommon/modulemodulemanage/modulemodulett-sc-generator/modulemodulefeignprovide/modulemodulefeignconsumer/module/modulesparentgroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-parent/artifactIdversion2.3.3.RELEASE/version !-- version2.1.8.RELEASE/version--relativePath/ !-- lookup parent from repository --/parentgroupIdcom.example/groupIdartifactIdspringcloud/artifactIdversion0.0.1-SNAPSHOT/versionnamespringcloud/namedescriptionDemo project for Spring Boot/descriptionpropertiesproject.build.sourceEncodingUTF-8/project.build.sourceEncodingproject.reporting.outputEncodingUTF-8/project.reporting.outputEncodingjava.version1.8/java.versionspring.boot.version2.3.3.RELEASE/spring.boot.versionspring.cloud.versionHoxton.SR8/spring.cloud.versionspring.cloud.sleuth.version2.2.3.RELEASE/spring.cloud.sleuth.versionswagger2.version2.9.2/swagger2.versionswagger-models.version1.6.0/swagger-models.versionswagger-annotations.version1.6.0/swagger-annotations.versiondruid.starter.vsersion1.1.21/druid.starter.vsersioncommons.lang.version2.4/commons.lang.versioncommons.lang3.version3.7/commons.lang3.versioncommons.collections.version3.2.1/commons.collections.versioncommons.io.version2.6/commons.io.versionspring.cloud.alibaba.version2.1.2.RELEASE/spring.cloud.alibaba.version/propertiesdependenciesdependencygroupIdorg.springframework.cloud/groupIdartifactIdspring-cloud-dependencies/artifactIdversion${spring.cloud.version}/versiontypepom/typescopeimport/scope/dependencydependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-web/artifactId/dependencydependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-test/artifactIdscopetest/scope/dependencydependencygroupIdcom.alibaba.cloud/groupIdartifactIdspring-cloud-alibaba-dependencies/artifactIdversion${spring.cloud.alibaba.version}/versiontypepom/typescopeimport/scope/dependency/dependenciesbuildpluginsplugingroupIdorg.springframework.boot/groupIdartifactIdspring-boot-maven-plugin/artifactId/plugin/plugins/build/project 测试结果
http://www.w-s-a.com/news/577810/

相关文章:

  • 徐州网站建设 网站推广WordPress 文章编辑
  • 做什么网站比较受欢迎软件商店下载安装2023版本最新
  • 做ip资讯的网站怎么在wordpress中套用同行网页
  • 医院网站如何备案东莞优化公司收费
  • 罗村网站开发适合ps做图的素材网站有哪些
  • 网站建设中 油财宝企业网址怎么整
  • asp.net空网站php网站开发要学什么
  • 做可视化的网站微信网站模版下载
  • 包头移动的网站建设茂名建站价格
  • 网站文章内容一键排版功能铜山网站建设
  • cdr可不可做网站对网站建设起到计划和指导的作用
  • 合肥最好的网站建设网页设计心得体会2000字
  • 西安网站品牌建设门户网站类型
  • 网上做调查问卷的网站请人做网站域名和主机
  • 个人网站模板html5找公司网站建设
  • 找最新游戏做视频网站一个做网站的团队需要哪些人员
  • 威海市做网站的做网站很难吗
  • 广州房地产网站建设方案怎么免费申请网站
  • 免费生成网站软件下载影视公司名字取名
  • 网站公司提供程序免费的网页入口
  • jsp网站开发实例教学房产网站怎么做400电话
  • 网络营销方式及流程广州seo工作
  • 专业商城网站制作免费网页设计成品
  • 韩国优秀设计网站找做网站找那个平台做
  • 贵州省清镇市建设学校网站国家企业信用信息公示系统官网河北
  • 游戏界面设计网站网站建设问一问公司
  • 织梦网站模板如何安装教程视频国外哪些网站可以注册域名
  • 用群晖做网站网站中文名称注册
  • 做一个企业网站需要哪些技术app开发公司名字
  • 网站建设有技术的公司图片在线设计平台