@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, 不便於其他人對代碼的閱讀和理解!還是建議區分開來寫!養成良好的代碼習慣!
-
參考博客鏈接
-
詳情可參:Spring官方文檔