在线网站设计,韩都衣舍网站建设策划书,网站关键词优化多少钱,网页设计规划书样本假设已配好nacos服务#xff1a;并且已配好userservice、orderservice#xff0c;点击跳转
Feign是一个声明式的http客户端#xff0c;官方地址#xff1a;https://github.com/OpenFeign/feign#xff0c;其作用就是在程序中帮助我们优雅的实现http请求的发送#xff0c…假设已配好nacos服务并且已配好userservice、orderservice点击跳转
Feign是一个声明式的http客户端官方地址https://github.com/OpenFeign/feign其作用就是在程序中帮助我们优雅的实现http请求的发送解决RestTemplate的远程调用硬编码的问题。
pom.xml导入Feign依赖
dependencygroupIdorg.springframework.cloud/groupIdartifactIdspring-cloud-starter-openfeign/artifactIdversion2.2.7.RELEASE/version
/dependency在启动类OrderApplication.java中添加开启Feign注解
EnableFeignClients // 开启Feign
MapperScan(cn.itcast.order.mapper)
SpringBootApplication
public class OrderApplication {...
}新建文件UserClient.java编写Feign客户端
FeignClient(userservice) // userservice为nacos远程调用的服务端名称
public interface UserClient {GetMapping(/user/{id}) // 请求地址为http://userservice/user/{id}User findById(PathVariable(id) Long id);
} TestService.java测试使用
public class OrderService {Autowiredprivate UserClient userClient; // 自动注入UserClientpublic Order queryOrderById(Long orderId) {Order order orderMapper.findById(orderId);User user userClient.findById(order.getUserId()); // Feign远程调用 http://userservice/user/{id}order.setUser(user);return order;}
}自定义的一些配置如日志级别
方式一application.yml配置文件
feign:client:config:userservice: # 针对某个服务logger-level: FULL # 日志级别#default: # default就是全局配置如果是写服务名称则是针对某个微服务的配置#logger-level: BASIC方式二 重写Logger.Level的Bean实列
DefaultFeignConfig.java
// Configuration // 如果不想要配置以下两种则直接加这个注解让spring扫描到
public class DefaultFeignConfig {Beanpublic Logger.Level feignLogLevel() {return Logger.Level.FULL;}
}1. 如果要全局生效将其放到Application.java启动类的EnableFeignClients这个注解中
EnableFeignClients(defaultConfiguration DefaultFeignConfig.class) 2. 如果是局部生效则把它放到对应的FeignClient这个注解中也就是上面的UserClient.java中加入以下注解
FeignClient(value userservice, configuration DefaultFeignConfig.class) Fegin 开启Apache HttpClient连接池
默认是URLConnection不支持连接池。
pom.xml导入依赖
!--httpClient的依赖 --
dependencygroupIdio.github.openfeign/groupIdartifactIdfeign-httpclient/artifactIdversion10.10.1/version
/dependency配置文件application.yml配置httpclient连接池参数
feign:client:config:default: # default全局的配置loggerLevel: BASIC # 日志级别BASIC就是基本的请求和响应信息httpclient: # httpclient连接池enabled: true # 开启feign对HttpClient的支持max-connections: 200 # 最大的连接数max-connections-per-route: 50 # 每个路径的最大连接数