open-feign的使用

代码和配置

1. alibaba-feign-api


第一步:引入依赖

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

第二步:修改打包方式(因为该工程式一个普通的jar 不需要打可执行的jar)

<build>
 <plugins> 
   <plugin>
     <groupId>org.apache.maven.plugins</groupId> 
     <artifactId>maven‐jar‐plugin</artifactId> 
   </plugin> 
 </plugins> 
</build>

第三步:编写声明式接口

@FeignClient(name = "product‐center")
public interface ProductCenterFeignApi {
   /**  * 声明式接口,远程调用http://product‐center/selectProductInfoById/{productNo} 
   * @param productNo  
   * * @return 
   * */
   @RequestMapping("/selectProductInfoById/{productNo}")
   ProductInfo selectProductInfoById(
       @PathVariable("productNo")
   String productNo);
}

2.调用者工程alibaba-feign-order


第一步:引入依赖包

<dependency> 
 <groupId>com.tuling</groupId> 
 <artifactId>alibaba‐feign‐api</artifactId>  
 <version>0.0.1‐SNAPSHOT</version> 
</dependency>

第二步: 开启注解加入 @EnableFeignClients

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

第三步:调用方式(像调用本地方式一样调用远程服务)

@Autowired  
private ProductCenterFeignApi productCenterFeignApi;  
ProductInfo productInfo = productCenterFeignApi.selectProductInfoById(orderNo);

3.我们服务提供者alibaba-feign-product 的controller 需要实现我们的productCenterFeignApi接口,防止修 改(比如我们的productCenterFeignApi修改了,若没有实现该接口,服务提供者感知不到)


第一步:引入依赖 tulingvip03-ms-alibaba-feign-api
第二步:我们的ProductInfoController实现productCenterFeignApi接口

@RestController 
public class ProductInfoController implements ProductCenterFeignApi

二:

2.1)默认情况下,Feign的调用式不打印日志,我们需要通过自定义来打印我们的Feign的日志 (basic适 用于生产环境)
在这里插入图片描述
①: 我们在talibaba-feign-api工程中添加Feign的自定义配置

public class ProductCenterFeignConfig {

@Bean 
public Logger.Level level() { 
  //return Logger.Level.FULL; 
   return Logger.Level.BASIC; 
}
}
@FeignClient(name = "product‐center",configuration = ProductCenterFeignConfig.class) 
 public interface ProductCenterFeignApi {

 /*** 声明式接口,远程调用http://product‐center/selectProductInfoById/{productNo} 
 * @param productNo 
 * @return 
 * */
 * 
 @RequestMapping("/selectProductInfoById/{productNo}") 
  ProductInfo selectProductInfoById(@PathVariable("productNo") String productNo); 
   }

②:针对调用端工程alibaba-customcfg-feign-order针对日志com.tuling.feignapi 包下的日志级 别必须调整为DEBUG级别的 不然是不会打印日志的

logging: 
 level: 
  com: 
   tuling: 
    feignapi: debug
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值