提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
前言
提示:前提搭建好服务,没有案例可以私信博主获取。
以下是本篇文章正文内容,下面两种方式案例可供参考:
一、配置文件
application.yml:
feign:
httpclient:
enabled: true # 支持HttpClient的开关
max-connections: 200 # 最大连接数
max-connections-per-route: 50 # 单个路径的最大连接数
client:
config:
default:
logger-level: full #最高级别日志 低到高none basic headers full
建议使用null和basic模式、调试可以开启full模式。
二、自定义配置
1.全局配置
在启动类开启注解:
@EnableFeignClients(clients = UserClient.class,defaultConfiguration = DefaultFeignConfiguration.class)
主要参数:DefaultFeignConfiguration.class、该参数对应自己写的配置类
package cn.itcast.order;
import cn.itcast.feign.clients.UserClient;
import cn.itcast.feign.config.DefaultFeignConfiguration;
import com.netflix.loadbalancer.IRule;
import com.netflix.loadbalancer.RandomRule;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.client.loadbalancer.LoadBalanced;
import org.springframework.cloud.openfeign.EnableFeignClients;
import org.springframework.context.annotation.Bean;
import org.springframework.web.client.RestTemplate;
@MapperScan("cn.itcast.order.mapper")
@SpringBootApplication
@EnableFeignClients(clients = UserClient.class,defaultConfiguration = DefaultFeignConfiguration.class) //开启feigng调用其他客户端 全局配置
public class OrderApplication {
public static void main(String[] args) {
SpringApplication.run(OrderApplication.class, args);
}
/**
* 创建RestTemplate并注入Spring容器
*/
@Bean
@LoadBalanced
public RestTemplate restTemplate() {
return new RestTemplate();
}
// @Bean
// public IRule randomRule() {
// return new RandomRule();
// }
}
配置类:DefaultFeignConfiguration
package cn.itcast.feign.config;
import feign.Logger;
import org.springframework.context.annotation.Bean;
/**
*
*/
public class DefaultFeignConfiguration {
@Bean
public Logger.Level logLevel(){
return Logger.Level.BASIC;
}
}
注意:Logger.Level.BASIC;
日志模式类型和第一种方法上面的配置文件basic是同一个类型,只是方式不一样。
2.局部配置
在客户端类直接使用对应的服务配置:
@FeignClient(value = "userservice",configuration = DefaultFeignConfiguration.class)
主要参数:DefaultFeignConfiguration.class、该参数对应自己写的配置类
package cn.itcast.feign.clients;
import cn.itcast.feign.config.DefaultFeignConfiguration;
import cn.itcast.feign.pojo.User;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
@FeignClient(value = "userservice",configuration = DefaultFeignConfiguration.class)
public interface UserClient {
@GetMapping("/user/{id}")
User findById(@PathVariable("id") Long id);
}
局部配置和全局配置的配置类一样 DefaultFeignConfiguration 要使用Bean注解以及设置日志模式
总结
前提搭建好服务,没有案例可以私信博主获取。在启动类开启注解:主要参数:DefaultFeignConfiguration.class、该参数对应自己写的配置类@EnableFeignClients(clients = UserClient.class,defaultConfiguration = DefaultFeignConfiguration.class) //开启feigng调用其他客户端 全局配置