javascript
Spring MVC注释
介紹:
從Spring 2.5開始,我們可以使用注釋來標記我們的Spring組件。
一種方法是在我們的appConfig.xml中使用<component-scan>標記:
<context:component-scan base-package="com.programmergirl" />然后,Spring容器將遞歸掃描給定包及其子包中的所有組件。
在本快速教程中, 我們將討論最常用的Spring MVC注釋。
定義
根據其類型,我們可以為控制器使用兩種不同的注釋:
我們可以簡單地使用此注釋來標記我們的任何Spring MVC控制器類:
@Controller public class MyController {... }該注釋對于注釋我們的RESTful控制器很有用:
@RestController public class MyRestController {... }該注釋本身使用@Controller和@ResponseBody注釋進行注釋。
在另一篇文章中,我們已經詳細介紹了@Controller和@RestController之間的區別 。
請求處理注釋:
現在讓我們看一下可用于處理HTTP請求的注釋:
我們使用此批注在Spring MVC Controller中映射Web請求方法 。 我們還可以使用其可用屬性對其進行自定義:
- method:表示一種HTTP請求方法-PUT,GET,POST,DELETE,PATCH
- 值:映射的URL
- params :根據HTTP參數過濾請求
- headers :根據HTTP標頭過濾請求。
- 產生:定義HTTP響應的媒體類型
- 消耗:指定HTTP請求的媒體類型
我們還可以在類級別使用此注釋來設置一些公共屬性 。
此外,從Spring 4.3開始,@ RequestMapping為不同的HTTP方法提供了多種變體。 這些包括@ GetMapping,@ PutMapping,@ PostMapping,@ DeleteMapping和@PatchMatching。
有了這個注釋,我們可以將HTTP請求參數綁定到method參數 :
@GetMapping("/message") String message(@RequestParam("userName") String userName) {return "Hello " + userName; }(可選)我們還可以提供默認值。 對于request參數的缺失值,使用默認值:
@GetMapping("/message") String message(@RequestParam(defaultValue = "Sam") String userName) {return "Hello " + userName; }我們可以將method參數綁定到path或URI中的變量之一。 我們將使用@PathVariable :
@GetMapping("/message/{userName}") String message(@PathVariable String userName) {... }另外,我們可以通過將required設置為false來選擇將路徑變量標記為可選:
@GetMapping("/message/{userName}") String message(@PathVariable(required = false) String userName) {... }可以將HTTP請求正文作為參數傳遞給控制器??中的處理程序方法。 我們經常使用它來讀取帶有PUT和POST等 HTTP方法的請求的請求主體。
@PostMapping("/message") String message(@RequestBody String userName) {... }內容將根據其類型使用HttpMessageConverter自動反序列化。
響應處理注釋:
現在,讓我們探索一些可用于處理HTTP響應的注釋:
與@RequestBody相似,我們有一個@ResponseBody批注。 當我們使用此注釋對方法進行注釋時,Spring將此方法的結果視為響應本身:
@GetMapping("/message") @ResponseBody String message() {return "Hello World!!"; }我們還可以使用此注釋來注釋@Controller類。 如果是這樣,我們控制器中的所有方法都將使用它。
這樣,我們可以將所需的HTTP響應狀態映射到控制器中的方法:
@ExceptionHandler(UserAccessDeniedException.class) @ResponseStatus(HttpStatus.FORBIDDEN) void onUserAccessDeniedException(UserAccessDeniedException exception) {... }我們可以了解更多有關如何使用@ResponseStatus設置狀態代碼和原因的信息。
我們可以編寫自定義的異常處理程序方法。 在方法執行期間引發其類型異常時,將調用以下方法:
@ExceptionHandler(UserAccessDeniedException.class) void onUserAccessDeniedException(UserAccessDeniedException exception) {// ... }結論:
在本教程中,我們瀏覽了大多數常用的Spring MVC注釋。
翻譯自: https://www.javacodegeeks.com/2019/05/spring-mvc-annotations.html
總結
以上是生活随笔為你收集整理的Spring MVC注释的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 如何解决电脑的弹窗广告电脑跳出广告如何解
- 下一篇: Spring核心注释