SpringCloud学习笔记(三)- SpringCloud Feign

本文介绍如何使用Feign实现声明式服务调用,包括搭建简单服务、配置Feign客户端、重写默认设置及日志添加等。还介绍了Feign参数传递的方法。

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

Feign 声明式服务调用

一、 简单服务搭建

pom 引用

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

1、FeignApplication

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

2、 controller层

@RestController
public class CilentController {

    @Value("${server.port}")
    String port;

    @RequestMapping("/show")
    public String show(){
        System.out.println("客户端1测试信息,启用的端口号:"+port);
        return  "客户端信息";
    }
}

3、 FeignClient

@org.springframework.cloud.netflix.feign.FeignClient("eureka-client")
public interface FeignClient {

    @RequestMapping(value = "/show/{id}",method = RequestMethod.GET)
    public Object findByUser(@PathVariable("id") String id);
}


二、重写feign 默认设置

1、 配置类

@Configuration
public class FeignConfig {
    @Bean
    public Contract feignContract() {
        return new feign.Contract.Default();
    }
}

2、FeignClient 类
FeignClient中name属性为必填, configuration 引用配置类

@org.springframework.cloud.netflix.feign.FeignClient(name="eureka-client",configuration = FeignConfig.class)
public interface FeignClient {

    @RequestLine("GET /show/{id}")
    public Object findByUser(@Param("id") String id);
}

3、 添加feign日志
yml 配置文件:

logging:
  level:
    cn.pl.feign.FeignApplication : debug

FeignClient 类中添加日志方法

@Bean
Logger.Level feignLoggerLevel() {
   return Logger.Level.FULL;
}
三、 feign参数传递

1、 当传递基本类型的变量时, 在cilent方法中添加@RequestParam("")注解

  @RequestMapping(value = "/person/getRecord")
    public String getRecord(@RequestParam("id") String id);

2、当传递复杂变量时,在客户端的controller中,加入@RequestBody

    @ResponseBody
    @RequestMapping("/person/save")
    public void save(@RequestBody Users users){
        System.out.println("cilent---user:"+JSONObject.toJSONString(users));
        usersService.saveInfo(users);
    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值