编辑
2025-09-08
java
00

目录

1.Feign介绍
2.定义和使用客户端
(2)在order-service的启动类中加注释开启Fegin的功能
(4)调用举例
3.配置feign
4.feign性能优化
5.feign的最佳实现
(1)创建module
(2)将pojo和cliens的代码移动到feign-api中

1.Feign介绍

image.png

2.定义和使用客户端

(1)引入依赖

image.png

config
<!-- Feign依赖--> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-openfeign</artifactId> </dependency>

(2)在order-service的启动类中加注释开启Fegin的功能

image.png

(3)编写Feign客户端

image.png

image.png

java
package cn.itcast.order.clients; import org.springframework.cloud.openfeign.FeignClient; @FeignClient("userservice") public interface UserClient { }

(4)调用举例

java
@Service public class OrderService { @Autowired private OrderMapper orderMapper; @Autowired private UserClient userClient; public Order queryOrderById(Long orderId) { // 1.查询订单· Order order = orderMapper.findById(orderId); User user = userClient.getUserById(order.getUserId()); order.setUser(user); // 4.返回 return order; } }

3.配置feign

法一 image.png 法二 image.png

4.feign性能优化

默认使用URLconnection 使用连接池代替URLconnection image.png 连接池配置 image.png

pom
<!-- Feign添加HttpClient的支持--> <dependency> <groupId>io.github.openfeign</groupId> <artifactId>feign-httpclient</artifactId> </dependency>
config
feign: client: config: default: loggerLevel: FULL httpclient: enabled: true # 开启feign对httpclient的支持 max-connections: 200 # 最大连接数 max-connections-per-route: 50 # 每个路径的最大连接数

总结

image.png

5.feign的最佳实现

image.png 抽取具体实现

(1)创建module

image.png

(2)将pojo和cliens的代码移动到feign-api中

image.png image.png

本文作者:钱小杰

本文链接:

版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!