RequestParam,RequestBody,SpringQueryMap
阿新 • • 發佈:2021-05-14
OpenFeign
OpenFeign是Spring Cloud 在Feign的基礎上支援了Spring MVC的註解,如@RequesMapping等等
OpenFeign的@FeignClient可以解析SpringMVC的@RequestMapping註解下的介面,
並通過動態代理的方式產生實現類,實現類中做負載均衡並呼叫其他服務。
RequestParam,RequestBody,SpringQueryMap
1:@GetMapping和@PostMapping:
在Rest服務的RPC呼叫中,一般我們會使用@GetMapping和@PostMapping兩種方式
同時對應的接收引數則會使用@RequestParam和@RequestBody來獲取。
2:@RequestBody:
@RequestBody只能用在Post請求,並且一個Post請求只能有一個@RequestBody。 @RequestBody的引數可以包括複雜型別。
@PostMapping(path = "/update")
Boolean updateServiceInfo(@RequestBody updateXXXXXParams params)
3:@RequestParam:
一般用在Get請求中,但是@RequestParam 的引數只能是基本型別
@GetMapping(path = "/detail")
XXXXX getXXXXXXDetail (@RequestParam String id);
4:@SpringQueryMap
如果我們是Get請求,但是請求的引數又很多, 比如我在查詢並分頁的時候,我們的入參只有一個查詢的keyword, 但是又有分頁的一些資訊pageNum, pageSize, totalSize, 這時候我們一般會把這些資料封裝有一個pojo, 但是feign的get方式又不支援,這裡我們可以使用openfeign提供的@SpringQueryMap來解決這個問題,傳遞物件引數,讓框架自動解析
step1: 引用POM依賴
<dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-openfeign-core</artifactId> <version>2.2.1.RELEASE</version> </dependency>
step2:新增SpringQueryMap註解
@GetMapping(path = "/xxxx /list")
List<XXXXX> getServiceActionsList(@SpringQueryMap XXXXPageParams params);