日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > javascript >内容正文

javascript

Spring Cloud 之 Feign 使用HTTP请求远程服务

發布時間:2025/3/15 javascript 41 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Spring Cloud 之 Feign 使用HTTP请求远程服务 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

  Feign是從Netflix中分離出來的輕量級項目,能夠在類接口上添加注釋,成為一個REST API 客戶端,Feign默認集成了Ribbon。

  Feign中對 Hystrix 有依賴關系。Feign只是一個便利的rest框架,簡化調用,最后還是通過ribbon在注冊服務器中找到服務實例,然后對請求進行分配

  Feign是一種聲明式、模板化的HTTP客戶端。在Spring Cloud中使用Feign, 我們可以做到使用HTTP請求遠程服務時能與調用本地方法一樣的編碼體驗,開發者完全感知不到這是遠程方法,更感知不到這是個HTTP請求。

一、使用方式

  1、首先寫好需要注冊進注冊中心的服務接口UserServiceController,該接口相當于service層,只是以RestFULL接口的形式供遠程調用

@RestController @RequestMapping("userService") public class UserServiceController {@GetMapping("getUser/{userId}")public User getUser(@PathVariable("userId") String userId){System.out.println("獲取User,更具UserId,查詢User-->" + userId);User user = new User();user.setUserName("Tom");user.setPassword("123");return user;}@PostMapping("saveUser")public String saveUser(@RequestBody User user){System.out.println("保存User--->" + JSON.toJSONString(user));return "userId:010100100101";}@GetMapping("deleteUser/{userId}")public Boolean deleteUser(@PathVariable("userId") String userId){System.out.println("刪除用戶--->" + userId);return true;}@RequestMapping(value = "findUserByUserNameAndPassword")public User findUserByUserNameAndPassword(String userName, String password){System.out.println("userService--->" + userName + " password--->" + password);User user = new User();user.setUserName("Tomcat");user.setPassword("123");return user;}

  2、在請求遠程服務的項目的POM.XML文件中引入對Feign依賴

<dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-feign</artifactId> </dependency>

  3、創建FeignClient?

@FeignClient(value="springcloud-userservcie") public interface UserClient {@RequestMapping(value = "userService/getUser/{userId}", method = RequestMethod.GET)public User getUser(@PathVariable("userId") String userId);@RequestMapping(value = "userService/saveUser", method = RequestMethod.POST)public String saveUser(User user);@RequestMapping(value = "userService/deleteUser/{userId}", method = RequestMethod.GET)public Boolean deleteUser(@PathVariable("userId") String userId);@RequestMapping(value = "userService/findUserByUserNameAndPassword", method = RequestMethod.GET)public User findUserByUserNameAndPassword(@RequestParam("userName") String userName, @RequestParam("password") String password); }
  • @FeignClient(value="springcloud-userservcie"):用于通知Feign組件對該接口進行代理(不需要編寫接口實現),value屬性指定我們要調用注冊中心的服務ID。使用者可直接通過@Autowired注入。
  • @RequestMapping表示在調用該方法時需要向/group/{groupId}發送請求。
  • @PathVariable與SpringMVC中對應注解含義相同。

原理:Spring Cloud應用在啟動時,Feign會掃描標有@FeignClient注解的接口,生成代理,并注冊到Spring容器中。生成代理時Feign會為每個接口方法創建一個RequetTemplate對象,該對象封裝了HTTP請求需要的全部信息,請求參數名、請求方法等信息都是在這個過程中確定的,Feign的模板化就體現在這里

  4、在Controller調用

@RestController @RequestMapping("userClient") public class UserController {@Autowiredprivate UserClient userClient;@RequestMapping(value = "getUser/{userId}", method = RequestMethod.GET)public User getUser(@PathVariable("userId") String userId){return userClient.getUser(userId);}@RequestMapping(value = "saveUser", method = RequestMethod.POST)public String saveUser(User user){return userClient.saveUser(user);}@RequestMapping(value = "deleteUser/{userId}", method = RequestMethod.GET)public Boolean deleteUser(@PathVariable("userId") String userId){return userClient.deleteUser(userId);}@RequestMapping(value = "findUserByUserNameAndPassword")public User findUserByUserNameAndPassword(String userName, String password){System.out.println("userClient--->" + userName + " password--->" + password);return userClient.findUserByUserNameAndPassword(userName, password);}}

  5、啟動類上添加Feign注解@EnableFeignClients

@Configuration @ComponentScan @EnableAutoConfiguration @EnableEurekaClient @EnableFeignClients public class Application {public static void main(String[] args) {SpringApplication.run(Application.class, args);} }

?

轉載于:https://www.cnblogs.com/JoeyWong/p/9458998.html

總結

以上是生活随笔為你收集整理的Spring Cloud 之 Feign 使用HTTP请求远程服务的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。