千家信息网

Spring Cloud微服务之Feign怎么用

发表于:2025-02-07 作者:千家信息网编辑
千家信息网最后更新 2025年02月07日,小编给大家分享一下Spring Cloud微服务之Feign怎么用,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!Feign
千家信息网最后更新 2025年02月07日Spring Cloud微服务之Feign怎么用

小编给大家分享一下Spring Cloud微服务之Feign怎么用,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!

Feign是一个声明式的http客服端,目标是降低Http API的复杂性.可以用它来处理微服务间的调用.

01

-

接口模块(demo-account)

1.AccountController新增接口

@GetMapping("/{id}")public ResponseEntity> getById(@PathVariable("id") final long id) {  final Account account = service.getById(id);  log.info("getById:[{}]", account);  return Rs.ok(account);}

02

-

Feign模块(demo-feign)

1. 新建模块demo-feign,pom.xml添加依赖

    org.springframework.cloud    spring-cloud-starter-openfeign

2. 新建AccountService

@FeignClient(name = "DEMO-ACCOUNT")public interface AccountService {  @GetMapping("/demo-account/account/{id}")  ResponseEntity> getById(@PathVariable("id") final long id);}
  1. 上面的getById方法可以直接复制对应controller代码,只保留用户自定义参数即可,注意补全请求路径.

  2. @FeignClient的name为被调用服务注册到注册中心的名称,即eureka.instance.appname,通常就是spring.application.name的值.

  3. 调用模块(demo-feign)controller的请求方式要与被调用模块(demo-account)保持一致.

3. 新建controller/AccountController

@Slf4j@RestController@RequestMapping("/account")public class AccountController {  @Resource  private AccountService service;
@GetMapping("/get-by-id") @ApiOperation("通过id获取账户详情") public ResponseEntity> getById() { final ResponseEntity> response = service.getById(1L); final Account account = Rs.requireNonNull(response, ResCode.ACCOUNT_FAIL_GET_BY_ID); return Rs.ok(account); }}

4. 添加启动类 FeignApplication

@EnableFeignClients(basePackages = "io.github.ramerf.feign.service")@EnableDiscoveryClient@SpringBootApplication(scanBasePackages = {"io.github.ramerf.wind", "io.github.ramerf.feign"})public class FeignApplication {  public static void main(String[] args) {    SpringApplication.run(FeignApplication.class, args);  }}

@EnableFeignClients的basePackages属性,指定feign接口定义所在包.

03

-

启动模块测试

启动demo-eureka,demo-gateway,demo-account,demo-feign模块.

访问: http://localhost:3000/demo-feign/account/get-by-id

以上是"Spring Cloud微服务之Feign怎么用"这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注行业资讯频道!

0