淺談@GetMapping、@PostMapping和@RequestMapping註解的區別和使用

@GetMapping、@PostMapping和@RequestMapping的區別

  • 今天在使用FreeMarker的時候,在使用註解映射方法的時候還是比較混亂,在使用@GetMapping註解的時候,順手寫成了@RequestMapping ,但是發現還是實現了效果,兩者能相互替換,但是換成PostMapping就報:Request method ‘GET’ not supported 的錯誤!所以我就來研究了一下這三者的區別,發現還確實有聯繫!

摘:Spring4.3中引進了{@GetMapping、@PostMapping、@PutMapping、@DeleteMapping、@PatchMapping},來幫助簡化常用的HTTP方法的映射,並更好地表達被註解方法的語義。

  • 我們就來談談這個三者的區別吧!

@GetMapping

用於將HTTP GET請求映射到特定處理程序方法的註釋。具體來說,@GetMapping是一個作爲快捷方式的組合註釋
@RequestMapping(method = RequestMethod.GET)。

@PostMapping

用於將HTTP POST請求映射到特定處理程序方法的註釋。具體來說,@PostMapping是一個作爲快捷方式的組合註釋@RequestMapping(method = RequestMethod.POST)。

@RequestMapping:

一般情況下都是用@RequestMapping(method=RequestMethod.),因爲@RequestMapping可以直接替代以上兩個註解,但是以上兩個註解並不能替代@RequestMapping,@RequestMapping相當於以上兩個註解的父類!

類似的組合註解還有:
  • @PutMapping、@DeleteMapping、@PatchMapping

總結下來就是@PostMapping和@GetMapping都可以用@RequestMapping代替,如果讀者怕在映射的時候出錯,可以統一寫@RequestMapping,當然這樣寫的話也有弊端,籠統的全用@RequestMapping, 不便於其他人對代碼的閱讀和理解!還是建議區分開來寫!養成良好的代碼習慣!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章