SpringCloud之Feign远程接口映射的实现
一.简介
SpringCloud是基于Restful的远程调用框架,引入Ribbon负载均衡组件后还需要客户端使用RestTemplate调用远程接口,操作起来还显得繁琐。SpringCloud提供了远程接口映射,将远程Restful服务映射为远程接口,消费端注入远程接口即可实现方法调用。
二.流程
1.新建远程接口映射模块service-api,并引入Feign接口映射依赖
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-feign</artifactId>
</dependency>
</dependencies>
2.编写接口映射接口
package com.vincent.service;
import org.springframework.cloud.netflix.feign.FeignClient;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
@FeignClient("SERVICE-USER")
@RequestMapping("/service-user")
public interface IUserService {
@GetMapping("/detail")
Object detail(@RequestParam("id") Integer id);
}
3.配置消费端application.yml
server: port: 9001 eureka: client: service-url: defaultZone: http://localhost:7001/service-eureka/eureka register-with-eureka: false
4.消费端添加映射模块依赖
<dependency> <groupId>com.vincent</groupId> <artifactId>service-api</artifactId> <version>1.0-SNAPSHOT</version> </dependency>
5.客户端注入需要使用的服务接口映射
package com.vincent.controller;
import com.vincent.service.IUserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class UserController {
@Autowired
private IUserService userService;
@GetMapping("/detail")
public Object detail(Integer id){
return this.userService.detail(id);
}
}
5.编写消费端启动类
package com.vincent;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.netflix.eureka.EnableEurekaClient;
import org.springframework.cloud.netflix.feign.EnableFeignClients;
@SpringBootApplication
@EnableFeignClients({"com.vincent.service"})
@EnableEurekaClient
public class ConsumerApp {
public static void main(String[] args) {
SpringApplication.run(ConsumerApp.class,args);
}
}
@EnableFeignClients 定义Feign接口映射扫描包,IOC容器会自动创建接口实现类
6.访问 http://localhost:9001/detail?id=1

三.总结
Feign接口映射服务端Restful接口会自动依赖Ribbon组件,实现客户端负载均衡。使用接口调用消费端远程接口就像调用本地方法一样。
到此这篇关于SpringCloud之Feign远程接口映射的实现的文章就介绍到这了,更多相关SpringCloud Feign远程接口映射内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
相关文章
SpringBoot如何监听redis Key变化事件案例详解
项目中需要监听redis的一些事件比如键删除,修改,过期等,下面这篇文章主要给大家介绍了关于SpringBoot如何监听redis Key变化事件的相关资料,文中通过实例代码介绍的非常详细,需要的朋友可以参考下2022-08-08
SpringBoot+Redis布隆过滤器防恶意流量击穿缓存
本文主要介绍了SpringBoot+Redis布隆过滤器防恶意流量击穿缓存,文中根据实例编码详细介绍的十分详尽,具有一定的参考价值,感兴趣的小伙伴们可以参考一下2022-03-03


最新评论