SpringCloud组件Feign介绍以及使用

SpringCloud组件Feign

fegin的介绍

feign: 假装,伪装,装作,捏造。

feign框架是一个Http请求轻量级框架,通过接口注解的方式调用Http请求。通过处理注解将请求模板化,实际调用的时候,传入参数,根据参数再应用到请求上,转化为真的请求。这样就是面向接口编程。

说白了,这个东西就像是“写轮眼”,给你制造了幻术,你虽然是调用的一个个接口,但是实际上还是调用的正的请求,和RestTemplate那一套类似。使用feign的调用感觉更简洁,而不是像之前的RestTemplate指定请求方法,传入参数,而是直接调用接口,给个参数完事。

open fegin:Spring Cloud对feign封装,封装就是要加强,卡卡西继承了带土的写轮眼,在某些能力进行了加强,发动神威的时候不需解除物体,而卡卡西 Cloud就在feign的基础增加了对Spring MVC的注解,例如@RequesMapping,更加有利于Spring家族的整合。

fegin的使用

SpringCloud组件的使用一般都是三部走: 增加依赖(可能有些依赖带了其他的依赖),配置文件,加注解

创建两个项目,一个是服务提供端,一个是服务消费端。

服务提供端user-provider

引入的依赖:

		<-- web依赖 -->
		<dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <-- eureka客户端的依赖 -->
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
        </dependency>

配置文件设置:

eureka.client.service-url.defaultZone=http://euk1.com:7900/eureka/
server.port=81
spring.application.name=user-provider

服务提供端consumer

		<dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
        </dependency>
		<-- SpringCloud对Feign的封装 openfeign -->
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-openfeign</artifactId>
        </dependency>

配置文件

eureka.client.service-url.defaultZone=http://euk1.com:7900/eureka/
server.port=90
spring.application.name=consumer

在SpringBoot启动类增加注解: @EnableFeignClients

p端和c端搭建完成

开始使用Feign框架,新建一个user-api项目,也可以直接在p端完成下边的操作;

增加依赖:

		<-- web依赖 -->
		<dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <-- eureka客户端的依赖 -->
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
        </dependency>

定义接口:ConsumerApi

@RequestMapping("/user")
public interface ConsumerApi {

    @GetMapping("/isAlive")
    String isAlive();
}

使用Maven执行install

将user-api项目的依赖引入到p端项目和c端项目中:

		<!--引入user-Api-->
        <dependency>
            <groupId>com.zhy</groupId>
            <artifactId>user-api</artifactId>
            <version>0.0.1-SNAPSHOT</version>
        </dependency>

在P端项目中实现user-api的接口:

@RestController
public class UserController implements ConsumerApi {
    @Override
    public String isAlive() {
        return "isAlive";
    }
}

在C端项目中通过接口来继承user-api的接口,在通过注解:@FeignClient(name = “user-provider”),将服务的调用指向了P端服务的实现。

@FeignClient(name = "user-provider")
public interface UserConsumerService extends ConsumerApi {
    
}

C端完成调用:

@RestController
public class ConsumerController {
    @Autowired
    UserConsumerService userConsumerService;
    
    @GetMapping("/isAlive")
    public String isAlive() {
        return userConsumerService.isAlive();
    }
}

调用过程
调用过程

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值