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

做任务网站源码b站推广网站

做任务网站源码,b站推广网站,建设方案旅游局网站,云南做网站找谁Feign简介: Feign是一种声明式、模板化的HTTP客户端。在Spring Cloud中使用Feign, 我们可以做到使用HTTP请求远程服务时能与调用本地方法一样的编码体验。 Feign是在RestTemplate基础上封装的,使用注解的方式来声明一组与服务提供者Rest接口所对应的本地…

Feign简介:

Feign是一种声明式、模板化的HTTP客户端。在Spring Cloud中使用Feign, 我们可以做到使用HTTP请求远程服务时能与调用本地方法一样的编码体验。
Feign是在RestTemplate基础上封装的,使用注解的方式来声明一组与服务提供者Rest接口所对应的本地Java API接口方法。
Feign将远程Rest接口抽象成一个声明式的FeignClient(Java 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:8848

pom.xml

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><parent><artifactId>springcloud</artifactId><groupId>com.example</groupId><version>0.0.1-SNAPSHOT</version></parent><modelVersion>4.0.0</modelVersion><artifactId>feignconsumer</artifactId>
<dependencies><!-- 引入SpringCloud的Nacos server依赖 --><!--服务发现pom--><dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId><version>2.2.3.RELEASE</version></dependency><!-- feign --><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-openfeign</artifactId><version>2.2.1.RELEASE</version></dependency><dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId><version>2.2.3.RELEASE</version></dependency><dependency><groupId>io.swagger</groupId><artifactId>swagger-annotations</artifactId><version>1.5.20</version><scope>compile</scope></dependency></dependencies></project>

feignprovide提供方代码

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 version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><parent><artifactId>springcloud</artifactId><groupId>com.example</groupId><version>0.0.1-SNAPSHOT</version></parent><modelVersion>4.0.0</modelVersion>
<!--    <packaging>pom</packaging>--><artifactId>feignprovide</artifactId><dependencies><!-- nacos 客户端 作为 注册与发现--><dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId><version>2.2.3.RELEASE</version></dependency><!-- nacos 配置中心 --><dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId><version>2.2.3.RELEASE</version></dependency><!-- feign 调用服务接口 --><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-openfeign</artifactId><version>2.2.1.RELEASE</version></dependency><dependency><groupId>io.swagger</groupId><artifactId>swagger-annotations</artifactId><version>1.5.20</version><scope>compile</scope></dependency></dependencies></project>

父类pom.xml

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><packaging>pom</packaging><modules><module>common</module><module>manage</module><module>tt-sc-generator</module><module>feignprovide</module><module>feignconsumer</module></modules><parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.3.3.RELEASE</version>
<!--        <version>2.1.8.RELEASE</version>--><relativePath/> <!-- lookup parent from repository --></parent><groupId>com.example</groupId><artifactId>springcloud</artifactId><version>0.0.1-SNAPSHOT</version><name>springcloud</name><description>Demo project for Spring Boot</description><properties><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding><project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding><java.version>1.8</java.version><spring.boot.version>2.3.3.RELEASE</spring.boot.version><spring.cloud.version>Hoxton.SR8</spring.cloud.version><spring.cloud.sleuth.version>2.2.3.RELEASE</spring.cloud.sleuth.version><swagger2.version>2.9.2</swagger2.version><swagger-models.version>1.6.0</swagger-models.version><swagger-annotations.version>1.6.0</swagger-annotations.version><druid.starter.vsersion>1.1.21</druid.starter.vsersion><commons.lang.version>2.4</commons.lang.version><commons.lang3.version>3.7</commons.lang3.version><commons.collections.version>3.2.1</commons.collections.version><commons.io.version>2.6</commons.io.version><spring.cloud.alibaba.version>2.1.2.RELEASE</spring.cloud.alibaba.version></properties><dependencies><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-dependencies</artifactId><version>${spring.cloud.version}</version><type>pom</type><scope>import</scope></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope></dependency><dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-alibaba-dependencies</artifactId><version>${spring.cloud.alibaba.version}</version><type>pom</type><scope>import</scope></dependency></dependencies><build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId></plugin></plugins></build></project>

测试结果:

在这里插入图片描述

在这里插入图片描述

http://www.sczhlp.com/news/46778/

相关文章:

  • 弄一个网站网络推广的目标
  • 常州市建设银行网站西安百度竞价推广
  • idf.py的使用
  • 2025 STM32 研讨会报名开启 | 华清远见邀开发者共探技术进阶与应用落地
  • Django CBV
  • 重庆做网站多少钱新品上市怎么推广词
  • 中国建设银行个人网站银行网络推广外包哪家好
  • 郑州专业做淘宝网站免费网站建设平台
  • 轻淘客网站怎么做视频营销案例
  • 可以做基因通路分析的网站成都多享网站建设公司
  • 如何设计服装网站规划培训班报名
  • 石河子网站设计实时排名软件
  • 武汉专业网站做网页百度识图在线识图
  • 销售型企业网站新开传奇网站发布站
  • 专业企业网站建设多少钱seo技术教程博客
  • HuggingFace课程-9. 构建并分享你的模型 与 Gradio,回顾!
  • HuggingFace课程-9. 构建并分享你的模型 与 Gradio Blocks 简介
  • 【攻防世界】cookie
  • DAY19 numpy模块(多维数组运算) pandas模块(处理数据库) matplotlib模块(数据可视化)
  • 备案网站名怎么写旅行网站排名前十名
  • 网站是怎么建成的服务器域名查询
  • 2级a做爰片免费网站宁波好的seo外包公司
  • 钢琴网站建设原则广州竞价托管公司
  • HTB_Preignition练习记录——http 80
  • HuggingFace课程-9. 构建并分享你的模型 与 Interface 的高级功能
  • [buuctf]ez_pz_hackover_2016
  • 网站建设找北冥有鱼网站查询域名
  • 网站布局结构有哪些推广接单平台
  • 烟台网站建设优化创建个人网站的流程
  • 促销方案广州专门做seo的公司