Feign配置
添加依赖
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-openfeign</artifactId>
</dependency>
定义接口:
服务提供方:
根据服务提供方编写接口:
@FeignClient(name = "stock-nacos", path = "/stock")
public interface StockFeignService {
@RequestMapping("reduce")
String reduce();
}
服务消费方,Controller层编写:
@RestController
@RequestMapping("/order/")
public class OrderController {
private final StockFeignService stockFeignService;
public OrderController(StockFeignService stockFeignService) {
this.stockFeignService = stockFeignService;
}
@RequestMapping("add")
public String add() {
System.out.println("下单成功");
String msg = stockFeignService.reduce();
return "Hello Feign " + msg;
}
}
Feign 日志打印
定义一个配置类:
package com.zzy.order.config;
import feign.Logger;
import org.springframework.context.annotation.Bean;
/**
* 全局配置: 当使用 @configuration 会将配置作用所有服务提供方
* 局部配置: 就不加
*/
//@Configuration
public class FeignConfig {
@Bean
public Logger.Level feignLoggerLevel() {
return Logger.Level.FULL;
}
}
局部打印日志配置方式:
使用配置文件的方式配置局部日志:
Feign 自定义拦截器
@Slf4j
public class CustomFeignInterceptor implements RequestInterceptor {
@Override
public void apply(RequestTemplate requestTemplate) {
requestTemplate.header("xxx", "xxx");
requestTemplate.query("id", "111");
requestTemplate.uri("/9");
log.info("feign拦截器");
}
}