javascript
在Spring中使用@ResponseStatus获取Http状态
介紹:
在Spring MVC中,我們可以通過幾種方式設置HttpResponse的狀態。 在本教程中,我們將使用@ResponseStatus批注實現它。
我們可以使用@ResponseStatus標記帶有狀態碼和應返回原因的方法或異常類。 在調用標記的處理程序方法時或引發指定的異常時, HTTP狀態將設置為使用@ResponseStatus批注定義的狀態 。
使用方法:
默認情況下,我們的Spring Controller中的方法在成功執行時會返回HTTP Status 200(OK) 。
如果我們想從一個控制器方法中返回另一種類型的HttpStatus怎么辦? 為此,我們可以使用@ResponseStatus對其進行標記 :
@RequestMapping(method = RequestMethod.POST) @ResponseStatus(HttpStatus.CREATED) public void storeEmployee(@RequestBody Employee employee) {... }(可選)我們可以使用此批注標記Controller類。 在這種情況下,響應代碼配置將應用于所有請求處理程序方法。
我們還可以選擇使用此批注來標記@ExceptionHandler和@ControllerAdvice bean中的方法。
請注意, 僅當標記的方法成功執行且沒有引發任何異常時 , Spring才會使用@ResponseStatus 。
帶
我們可以使用@ResponseStatus批注標記異常類:
@ReponseStatus(value = HttpStatus.FORBIDDEN, reason = "Employee isn't authorized") public class EmployeeAccessDeniedException extends Exception {public EmployeeAccessDeniedException(String msg) {super(msg);} }當Spring捕獲到這樣的異常時,它將基于提供的設置拋出響應狀態。 注意, 除非我們也用@ResponseStatus標記它們,否則Spring將對所有子類使用相同的狀態配置。
在這里,我們還指定了例外原因 。
Spring將調用HttpServletResponse.sendError()方法時 :
- @ResponseStatus用于方法以及提供的原因 ,或者
- 在異常類上使用@ResponseStatus
使用sendError()方法意味著它會生成HTML錯誤頁面并將其發送到客戶端。 因此, 在REST Controller方法中 使用@ResponseStatus時 , 應避免提及原因 。
結論:
在本快速教程中,我們研究了如何在Spring MVC中設置HttpResponse的狀態。 我們了解了@ResponseStatus與方法以及異常類的用法。
翻譯自: https://www.javacodegeeks.com/2019/05/using-responsestatus-http-status-spring.html
總結
以上是生活随笔為你收集整理的在Spring中使用@ResponseStatus获取Http状态的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 欧洲《芯片法案》正式生效 拟2030年将
- 下一篇: gradle idea java ssm