国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - Java教程 - springboot RESTful以及參數注解的使用方式

springboot RESTful以及參數注解的使用方式

2022-02-23 00:34ZeusLuna Java教程

這篇文章主要介紹了springboot RESTful以及參數注解的使用方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教

springboot RESTful及參數注解使用

RESTful

Spring的復雜性不是來自于它處理的對象,而是來自于自身,不斷演進發展的Spring會帶來時間維度上復雜性,比如SpringMVC以前版本的@RequestMapping,到了新版本被下面新注釋替代,相當于增加的選項:

@GetMapping
@PostMapping
@PutMapping
@DeleteMapping
@PatchMapping

說明

1、@GetMapping

@RequestMapping(method = RequestMethod.GET)的簡寫

作用:對應查詢,表明是一個查詢URL映射

2、@PostMapping

@RequestMapping(method = RequestMethod.POST)的簡寫

作用:對應增加,表明是一個增加URL映射

3、@PutMapping

@RequestMapping(method = RequestMethod.PUT)的簡寫

作用:對應更新,表明是一個更新URL映射

4、@DeleteMapping

@RequestMapping(method = RequestMethod.DELETE)的簡寫

作用:對應刪除,表明是一個刪除URL映射

5、@PatchMapping

Patch方式是對put方式的一種補充;

put方式是可以更新.但是更新的是整體.patch是對局部更新;

參數注解的使用

@PathVariable
@RequestParam
@RequestBody
@ModelAttribute

說明

1. @PathVariable

獲取路徑參數。即url/{id}這種形式

@PathVariable綁定URI模板變量值

@PathVariable是用來獲得請求url中的動態參數的

@PathVariable用于將請求URL中的模板變量映射到功能處理方法的參數上。//配置url和方法的一個關系@RequestMapping(“item/{itemId}”)

2.@RequestParam

獲取查詢參數。即url?name=這種形式

@RequestParam注解主要有哪些參數:

  • value:參數名字,即入參的請求參數名字,如username表示請求的參數區中的名字為username的參數的值將傳入;
  • required:是否必須,默認是true,表示請求中一定要有相應的參數,否則將報404錯誤碼;
  • defaultValue:默認值,表示如果請求中沒有同名參數時的默認值,例如:
public List getItemTreeNode(@RequestParam(value=“id”,defaultValue=“0”)long parentId)

3.@RequestBody

@requestBody注解常用來處理content-type不是默認的application/x-www-form-urlcoded編碼的內容,比如說:application/json或者是application/xml等。一般情況下來說常用其來處理application/json類型。

通過@requestBody可以將請求體中的JSON字符串綁定到相應的bean上,當然,也可以將其分別綁定到對應的字符串上。

4.@ModelAttribute

在使用RESTful風格時,使用get請求,又想使用對象接收參數,就可以使用這個注解

不光適用于get請求,同樣也適用于put和delete請求

 

springboot Restful使用記錄

創建項目

通過spring官網創建項目

https://start.spring.io/

springboot RESTful以及參數注解的使用方式

  • 項目名稱取為studyRest
  • 項目依賴WEB

Rest組件使用

使用@RestController標記類為提供Restful服務的Contoller

@GetMapping為資源定位一部分,也就是url,對應http://localhost:8080/test

@RestController
public class MyRestContoller1 {
	@GetMapping("/test")
	public Map<String, String> getData() {
		Map<String, String> data = new HashMap<String, String>();
		data.put("id", "111");
		data.put("name", "zhangsan");
		return data;
	}
}

測試(這里使用瀏覽器測試,后續使用Postman工具)

springboot RESTful以及參數注解的使用方式

@GetMapping關鍵字對應GET請求,也就是查詢,請求還可以有參數,對應@PathVariable與@RequestParam注解

	@GetMapping("/test/{id}")
	public Map<String, String> getData2(@PathVariable String id, @RequestParam(required = false) String name) {
		Map<String, String> data = new HashMap<String, String>();
		data.put("id", id);
		data.put("name", name);
		return data;
	}

測試,返回值為入參傳入參數

springboot RESTful以及參數注解的使用方式

Post類型,新增操作

新增使用@PostMapping描述URL

新增一般都會帶有大量數據,一般都是使用@RequestBody注解封裝參數

	@PostMapping("/test2/add")
	public Map<String, String> addData(@RequestBody Map<String, String> data) {
		return data;
	}

測試

springboot RESTful以及參數注解的使用方式

注意兩點,不正確都會報錯

  • 請求類型必須是POST
  • Content-type必須要設置為application/json,因為入參形式為JSON格式

springboot RESTful以及參數注解的使用方式

更新與刪除操作

使用上與Post一致,只是不同類型需要使用對應的主機

  • PUT:@PutMapping
  • DELETE:@DeleteMapping
	@PutMapping("/test2/update")
	public Map<String, String> updateData(@RequestBody Map<String, String> data) {
		return data;
	}
	
	@DeleteMapping("/test2/delete")
	public Map<String, String> deleteData(@RequestBody Map<String, String> data) {
		return data;
	}

RequestMapping使用

RequestMapping是一個通用注解,包含上述所有操作

@RestController
@RequestMapping(value = "/parent")
public class RequestRestContoller {
	@RequestMapping(value = "/get", method = RequestMethod.GET)
	public Map<String, String> get() {
		Map<String, String> data = new HashMap<String, String>();
		data.put("id", "111");
		data.put("name", "zhangsan");
		return data;
	}
	
	@RequestMapping(value = "/add", method = RequestMethod.POST)
	public Map<String, String> add() {
		Map<String, String> data = new HashMap<String, String>();
		data.put("id", "111");
		data.put("name", "zhangsan");
		return data;
	}
	
	@RequestMapping(value = "/update", method = RequestMethod.PUT)
	public Map<String, String> update() {
		Map<String, String> data = new HashMap<String, String>();
		data.put("id", "111");
		data.put("name", "zhangsan");
		return data;
	}
	
	@RequestMapping(value = "/delete", method = RequestMethod.DELETE)
	public Map<String, String> delete() {
		Map<String, String> data = new HashMap<String, String>();
		data.put("id", "111");
		data.put("name", "zhangsan");
		return data;
	}
}

上述還有貼在class上面的注解:@RequestMapping(value = "/parent"),如果是class上面的注解,那么方法上面的url需要加上class上面的注解

如:http://localhost:8080/parent/get或http://localhost:8080/parent/add

其中可以屬于請求參數和響應數據類型

@RequestMapping(value = "/parent", consumes = MediaType.APPLICATION_JSON_VALUE, produces = MediaType.APPLICATION_JSON_VALUE)

其中consumes 約束入參類型,produces 約束響應數據類型

測試Content-Type:text/plain報錯,由于設置了JSON格式

springboot RESTful以及參數注解的使用方式

支持哪些格式參考Media定義

org.springframework.http.MediaType

XML格式數據支持

這里擴展一下,返回XML格式數據

引入XML依賴包

	<dependency>
		<groupId>com.fasterxml.jackson.dataformat</groupId>
		<artifactId>jackson-dataformat-xml</artifactId>
	</dependency>

測試類

@RestController
public class DataRestContoller {
	@RequestMapping(value = "/addJsonResponseXml", consumes = MediaType.APPLICATION_JSON_VALUE, produces = MediaType.APPLICATION_XML_VALUE)
	public Map<String, String> add(@RequestBody Map<String, String> data) {
		return data;
	}
}

測試

springboot RESTful以及參數注解的使用方式

以上為個人經驗,希望能給大家一個參考,也希望大家多多支持服務器之家。

原文鏈接:https://blog.csdn.net/leipeng321123/article/details/89394315

延伸 · 閱讀

精彩推薦
Weibo Article 1 Weibo Article 2 Weibo Article 3 Weibo Article 4 Weibo Article 5 Weibo Article 6 Weibo Article 7 Weibo Article 8 Weibo Article 9 Weibo Article 10 Weibo Article 11 Weibo Article 12 Weibo Article 13 Weibo Article 14 Weibo Article 15 Weibo Article 16 Weibo Article 17 Weibo Article 18 Weibo Article 19 Weibo Article 20 Weibo Article 21 Weibo Article 22 Weibo Article 23 Weibo Article 24 Weibo Article 25 Weibo Article 26 Weibo Article 27 Weibo Article 28 Weibo Article 29 Weibo Article 30 Weibo Article 31 Weibo Article 32 Weibo Article 33 Weibo Article 34 Weibo Article 35 Weibo Article 36 Weibo Article 37 Weibo Article 38 Weibo Article 39 Weibo Article 40
主站蜘蛛池模板: 色在线免费观看 | 中文字幕一区二区三 | 日韩免费电影 | 久久99精品久久久久久久青青日本 | 在线观看91 | 亚洲日本va中文字幕 | 综合五月 | 久久久久久99 | 国产精品一区二区三区免费 | 亚洲精品日本 | 久久99精品久久久久久国产越南 | 欧美一区二区免费在线 | 99精品视频一区二区三区 | 精品欧美日韩 | 亚洲视频一区在线 | 四虎影音 | 青青草国产在线 | 黄色网日本 | 亚洲精品欧美在线 | 午夜久久久 | 日韩精品视频在线观看免费 | 二区影院 | 人人插人人 | 欧美日韩一区二区三区在线观看 | 成人激情视频免费在线观看 | 亚洲精品在线视频 | 国产精品www | 国产精品美女久久久久久久久久久 | 人人玩人人添人人澡97 | 日韩不卡一区二区三区 | 欧美精品在线看 | 精品人成| 另类久久| 成人小视频在线观看 | 亚洲精品久久久久久下一站 | 国产91精品一区二区绿帽 | 国产一级片儿 | 欧洲国产一区 | 黄色影片免费观看 | 午夜免费 | 成人国产精品视频 |