首页IT科技feign远程调用实现过程(Feign)

feign远程调用实现过程(Feign)

时间2025-05-02 01:20:54分类IT科技浏览4127
导读:Feign Feign是一个声明式的http客户端,官方地址:https://github.com/OpenFeign/feign...

Feign

Feign是一个声明式的http客户端            ,官方地址:https://github.com/OpenFeign/feign

1.使用

1.引入依赖

<!-- Feign客户端--> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-openfeign</artifactId> </dependency>

2.在消费者启动开启Feign(添加注解)

@MapperScan("cn.itcast.order.mapper") @SpringBootApplication @EnableFeignClients //注解开启 public class OrderApplication { public static void main(String[] args) { SpringApplication.run(OrderApplication.class, args); } @LoadBalanced @Bean public RestTemplate restTemplate(){ return new RestTemplate(); } }

3.创建client文件                ,编写接口类

/** * @Date 2022/10/30 19:17 * @Author 郜宇博 */ @FeignClient("userservice") public interface UserClient { /** * @param id userid * @return User对象 * */ @GetMapping("user/{id}") User findById(@PathVariable("id") Long id); }

4.使用

@GetMapping("{orderId}") public Order queryOrderByUserId(@PathVariable("orderId") Long orderId) { // 根据id查询订单并返回 Order order = orderService.queryOrderById(orderId); //调用接口================== User user = userClient.queryById(order.getUserId()); //调用接口结束===================== order.setUser(user); return order; }

并且feign已经集成了ribbon

2.性能优化

1.HttpClient支持

2.连接池

3.日志级别尽量用basic

feign底层的连接是没有连接池的      ,需要更换httpclient

<!-- Feign-http--> <dependency> <groupId>io.github.openfeign</groupId> <artifactId>feign-httpclient</artifactId> </dependency>

连接池配置

feign: httpclient: enabled: true # 支持httpclient

3.实践使用

1.创建feign-api模块整合请求

2.引入依赖

<!-- Feign客户端--> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-openfeign</artifactId> </dependency>

3.编写client接口和实体类

/** * @Date 2022/10/30 19:17 * @Author 郜宇博 */ @FeignClient("userservice") public interface UserClient { /** * @param id userid * @return User对象 * 11 */ @GetMapping("user/{id}") User findById(@PathVariable("id") Long id); }

4.在消费者pom文件中引入编写的feign-api工程

<!-- feign-api--> <dependency> <groupId>cn.itcast.demo</groupId> <artifactId>feign-api</artifactId> <version>1.0</version> </dependency>

5.使用前注入client类

由于在其他工程中         ,因此无法直接注入                ,需要在启动类的注解中加入Client类

@Autowired private UserClient userClient;

启动类中

6.使用

//调用接口================== User user = userClient.queryById(order.getUserId()); //调用接口结束=====================

创心域SEO版权声明:以上内容作者已申请原创保护,未经允许不得转载,侵权必究!授权事宜、对本内容有异议或投诉,敬请联系网站管理员,我们将尽快回复您,谢谢合作!

展开全文READ MORE
网络大学有什么用(正规的网络**有哪些-热议!大学生真的有必要去做**吗?) 网站快速排名(实用的排名策略让您的网站快速上升)