日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > javascript >内容正文

javascript

Spring MVC注释

發布時間:2023/12/3 javascript 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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請求的媒體類型
@Controller @RequestMapping("/hello-world") class MyController {@RequestMapping(value = "/message", method = RequestMethod.GET)String message() {return "Hello World!";} }

我們還可以在類級別使用此注釋來設置一些公共屬性

此外,從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注释的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。