springcloud 整合 openfeign的方法
一、openfeign簡介
Feign是Nefix開發的聲明式、模塊化的Http客戶端。Feign可以幫助我們更快捷、優雅地調用Http Api。
在springclouid中使用 feign非常簡單 –創建一個接口,並在接口中添加一些註解,代碼就完成瞭,Feign支持多種註解
openFeign 是springcloud對Feign進行瞭增強,使得Feign支持瞭springmvc的註解,並整合瞭Ribbon和Eureka,從而讓Feign的使用更加方便
二、使用
1、依賴
<dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <!--服務註冊與發現--> <dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId> </dependency> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-openfeign</artifactId> </dependency> <dependency> <groupId>com.sofwin</groupId> <artifactId>springEntity</artifactId> <version>1.0-SNAPSHOT</version> </dependency> </dependencies>
2、配置文件
加入到nacos的服務中
server: port: 7000 spring: cloud: nacos: discovery: server-addr: 127.0.0.1:8848 heart-beat-interval: 1000 application: name: openFeign
3、啟動類
package com.sofwin; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.cloud.client.discovery.EnableDiscoveryClient; import org.springframework.cloud.openfeign.EnableFeignClients; /** * @author : wentao * @version : 1.0 */ @SpringBootApplication //開啟服務註冊與發現 @EnableDiscoveryClient //開啟Feign @EnableFeignClients public class App { public static void main(String[]args){ SpringApplication.run(App.class,args); } }
4、接口
package com.sofwin.service; import com.sofwin.pojo.User; import org.springframework.cloud.openfeign.FeignClient; import org.springframework.cloud.openfeign.SpringQueryMap; import org.springframework.web.bind.annotation.*; import java.util.List; /** * @author : wentao * @version : 1.0 */ //寫的是服務端的名稱 @FeignClient("nacos-previder") public interface UserService { @GetMapping("/user/data") String getUserName(); @GetMapping("/user/info/{msg}") //這裡註意瞭 這個註意@PathVariable 一定要添加name或者value屬性 String infoResful(@PathVariable(name = "msg") String msg); @GetMapping("/user/data5") //這裡註意瞭 調用遠程服務必須使用@RequesParam註解 並且名字與遠程服務的參數名相同 String simpleParam(@RequestParam("userName11") String userName,@RequestParam("pwd") String pwd); //其實openFeign默認就是json的格式 這裡是為瞭規范 @PostMapping("user/data6") User getUser (@RequestBody User user); @DeleteMapping("user/data7") User getUser2 (@RequestBody User user); //或者我們就可以使用一個註解 將json格式改為form表單的格式發送到遠程服務中 //然後遠程不用寫@RequestBody @PostMapping("user/data8") User getUser3 (@SpringQueryMap User user); //集合 @PostMapping("user/data9") List<User> getList(@RequestBody User user); }
接口中定義遠程服務中的的請求
使用 @FeignClien的註解 名稱是遠程服務的名稱
5、controller
package com.sofwin.controller; import com.sofwin.pojo.User; import com.sofwin.service.UserService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import java.util.List; /** * @author : wentao * @version : 1.0 */ @RestController @RequestMapping("/role") public class RoleController { @Autowired private UserService userService; @GetMapping("/data") public String data(){ String userName = userService.getUserName(); return userName; } //Resful風格 @GetMapping("data1") public String infoResful(String msg){ String s = userService.infoResful(msg); return s; } //簡單類型的請求參數 @GetMapping("/data2") public String simpleParam(String userName,String pwd){ return userService.simpleParam(userName,pwd); } //自定義 json字符串 或者表單形式 @PostMapping("/data3") public User getUser(User user){ return userService.getUser(user); } @DeleteMapping("/data4") public User getUser2(User user){ return userService.getUser2(user); } @PostMapping("/data5") public User getUser3(User user){ return userService.getUser3(user); } //返回結果為集合類型 @PostMapping("/data6") public List<User> getList(User user){ return userService.getList(user); } }
註意:
//其實openFeign默認就是json的格式
到此這篇關於springcloud 整合 openfeign的文章就介紹到這瞭,更多相關springcloud 整合 openfeign內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!
推薦閱讀:
- SpringCloud openfeign聲明式服務調用實現方法介紹
- Spring Cloud-Feign服務調用的問題及處理方法
- SpringCloud OpenFeign基本介紹與實現示例
- SpringCloud學習筆記之OpenFeign進行服務調用
- OpenFeign服務接口調用的過程詳解