SpringCloud 入门笔记(三)Feign声明式HTTP调用

本文介绍如何在Spring Cloud项目中配置Feign组件实现服务间的HTTP调用,并通过实例演示了具体的配置步骤及测试方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

1 概述

2 配置Feign组件

3 测试


1 概述

在SpringCloud中,每个微服务即是服务提供者也是服务消费者,各个微服务之间经常需要互相调用。通常,服务会向外部提供一些REST接口,供外部服务调用,Feign就是提供服务间声明式HTTP调用的组件。通过Feign,我们可以使用SpringMVC注解创建访问其他服务接口的HTTP客户端。

本篇以 user-ms 和 role-ms 两个微服务为例,配置Feign组件。

2 配置Feign组件

在pom.xml中添加如下依赖:

<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-openfeign</artifactId>
</dependency>

在启动类添加@EnableFeignClients注解,如下:

@SpringBootApplication
@EnableEurekaClient
@EnableFeignClients
public class UserMsApplication {
    public static void main(String[] args) {
        SpringApplication.run(UserMsApplication.class, args);
    }
}

在user-ms中创建一个FeignClient接口,作为Feign客户端,通过SpringMVC注解访问role-ms微服务,如下所示:

@FeignClient(name = "role-ms")
public interface RoleFeignClient {

    @RequestMapping(value = {"/role/list"}, method = RequestMethod.GET)
    Object list();

    @RequestMapping(value = "/role/insert", method = RequestMethod.POST)
    String insert(@RequestBody Role role);

}

在UserController中定义访问role-ms的接口,如下:

@RestController
@RequestMapping(value = "/user")
public class UserController {
    @Autowired
    private UserService userService;
    @Autowired
    private RoleFeignClient roleFeignClient;

    @RequestMapping(value = {"/list", ""}, method = RequestMethod.GET)
    public Object list() {
        List<User> users = userService.findAllList();
        return users;
    }

    /**
     * 访问role-ms微服务,获取角色列表
     * @return 角色列表
     */
    @RequestMapping(value = {"/role/list"}, method = RequestMethod.GET)
    public Object roleList() {
        return roleFeignClient.list();
    }

    /**
     * 访问role-ms微服务,保存角色数据
     * @param role 待保存的角色数据
     * @return 数据保存结果
     */
    @RequestMapping(value = {"/role/insert"}, method = RequestMethod.POST)
    public Object roleInsert(@RequestBody Role role) {
        return roleFeignClient.insert(role);
    }

}

3 测试

通过postman测试服务,结果如下:

源码地址:https://github.com/GreedyStar/spring-cloud-demo

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值