詳解springboot@getmapping

一、getmapping介紹

getmapping指的是一個用於處理HTTP GET請求的註解,被應用在Spring Boot的Controller層方法上,告訴Spring Boot哪個請求能夠被該方法所處理。當一個HTTP GET請求到達該Controller時,Spring Boot會調用對應的方法,方法中的處理結果被返回給客戶端。

例如,我們有一個GetUserController,它有一個findUser方法,該方法處理HTTP GET請求,並返回用戶相關信息。

@GetMapping("/users/{id}")
public User findUser(@PathVariable Long id) {
    return userService.findById(id);
}

上述代碼中,我們用@GetMapping註解處理與”/users/{id}”匹配的HTTP GET請求,並將路徑變數id映射到方法參數id上,然後從userService中獲取用戶相關信息,並返回給客戶端。

二、映射請求路徑

使用@GetMapping註解來處理HTTP GET請求,它支持一個路徑參數,用於映射請求路徑。我們可以使用字元串來指定請求的路徑:

@GetMapping("/users")
public List getUsers() {
    return userService.findAll();
}

上述代碼中,我們使用@GetMapping(“/users”)來映射/users路徑,當用戶請求該路徑時將會調用getUsers方法來處理。

另外,我們可以定義帶有路徑變數的路徑,例如:

@GetMapping("/users/{id}")
public User getUserById(@PathVariable Long id) {
    return userService.findById(id);
}

上述代碼中,我們使用@GetMapping(“/users/{id}”)來映射含有路徑變數的路徑/users/{id},當用戶請求該路徑時將會調用getUserById方法來處理。

三、映射請求參數

除了路徑之外,我們還可以使用@RequestParam註解來映射請求參數。我們可以通過@RequestParam註解來指定請求參數名:

@GetMapping("/users")
public List getUsersByPage(@RequestParam Integer page, @RequestParam Integer size) {
    return userService.findUsersByPage(page, size);
}

上述代碼中,我們使用@GetMapping(“/users”)來映射/users路徑,使用@RequestParam註解來獲取客戶端傳遞進來的兩個參數 page 和 size,然後調用userService中類似於findUsersByPage方法去查詢對應頁碼和每頁的大小,返回查詢結果給客戶端。

四、跳轉路徑和重定向路徑

除了返回數據,getmapping還能夠用於處理請求的路徑跳轉和重定向。我們可以使用ModelAndView和RedirectView對象來處理跳轉路徑和重定向路徑。在返回值中加上View實例,返回客戶端。

@GetMapping("/")
public ModelAndView index() {
    ModelAndView modelAndView = new ModelAndView("index");
    return modelAndView;
}

@GetMapping("/home")
public RedirectView home() {
    RedirectView redirectView = new RedirectView("/index");
    return redirectView;
}

上述代碼中,我們使用ModelAndView對象處理index請求,它將返回一個名為index的模板。使用RedirectView對象處理home請求,它將返回一個重定向路徑為/index的視圖。

五、使用@ResponseBody註解

當我們在Controller方法中返回一個對象或集合時,該對象或集合會自動序列化為JSON或XML格式返回給客戶端。但是,如果我們返回一個字元串或其他非JSON或XML格式數據,則需要使用@ResponseBody註解來告訴Spring Boot將其直接返回給客戶端。

@GetMapping("/greeting")
@ResponseBody
public String greeting() {
    return "Hello, world!";
}

上述代碼中,我們使用@ResponseBody註解告訴Spring Boot將字元串「Hello, world!」直接返回給客戶端。

六、處理異常情況

getmapping也支持處理異常情況,我們可以使用@ExceptionHandler註解來定義異常處理程序:

@GetMapping("/users/{id}")
public User findUser(@PathVariable Long id) throws UserNotFoundException {
    User user = userService.findById(id);
    if (user == null) {
        throw new UserNotFoundException();
    }
    return user;
}

@ExceptionHandler(UserNotFoundException.class)
public ResponseEntity handleUserNotFoundException(UserNotFoundException e) {
    return ResponseEntity.status(HttpStatus.NOT_FOUND).body("User not found");
}

上述代碼中,我們在findUser方法中如果找不到用戶,則拋出UserNotFoundException異常。然後,我們定義了一個handleUserNotFoundException方法,該方法使用ResponseEntity返回一個字元串「User not found」,並返回HTTP 404狀態碼。

結論

本文介紹了Spring Boot中使用getmapping註解處理HTTP GET請求的方法,包括映射請求路徑、請求參數、跳轉路徑和重定向路徑、使用@ResponseBody註解和處理異常情況等。getmapping提供了一種簡單而方便的方式來處理HTTP GET請求,從而使得開發更加高效和快速。

原創文章,作者:DMQY,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/135952.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
DMQY的頭像DMQY
上一篇 2024-10-04 00:15
下一篇 2024-10-04 00:15

相關推薦

  • 從ga角度解讀springboot

    springboot作為目前廣受歡迎的Java開發框架,其中的ga機制在整個開發過程中起著至關重要的作用。 一、ga是什麼 ga即Group Artifacts的縮寫,它是Mave…

    編程 2025-04-29
  • SpringBoot Get方式請求傳參用法介紹

    本文將從以下多個方面對SpringBoot Get方式請求傳參做詳細的闡述,包括URL傳參、路徑傳參、請求頭傳參、請求體傳參等,幫助讀者更加深入地了解Get請求方式下傳參的相關知識…

    編程 2025-04-27
  • SpringBoot如何設置不輸出Info日誌

    本篇文章將帶您了解如何在SpringBoot項目中關閉Info級別日誌輸出。 一、為什麼要關閉Info日誌 在開發中,我們經常會使用Log4j、Logback等框架來輸出日誌信息,…

    編程 2025-04-27
  • 神經網路代碼詳解

    神經網路作為一種人工智慧技術,被廣泛應用於語音識別、圖像識別、自然語言處理等領域。而神經網路的模型編寫,離不開代碼。本文將從多個方面詳細闡述神經網路模型編寫的代碼技術。 一、神經網…

    編程 2025-04-25
  • Linux sync詳解

    一、sync概述 sync是Linux中一個非常重要的命令,它可以將文件系統緩存中的內容,強制寫入磁碟中。在執行sync之前,所有的文件系統更新將不會立即寫入磁碟,而是先緩存在內存…

    編程 2025-04-25
  • git config user.name的詳解

    一、為什麼要使用git config user.name? git是一個非常流行的分散式版本控制系統,很多程序員都會用到它。在使用git commit提交代碼時,需要記錄commi…

    編程 2025-04-25
  • 詳解eclipse設置

    一、安裝與基礎設置 1、下載eclipse並進行安裝。 2、打開eclipse,選擇對應的工作空間路徑。 File -> Switch Workspace -> [選擇…

    編程 2025-04-25
  • Linux修改文件名命令詳解

    在Linux系統中,修改文件名是一個很常見的操作。Linux提供了多種方式來修改文件名,這篇文章將介紹Linux修改文件名的詳細操作。 一、mv命令 mv命令是Linux下的常用命…

    編程 2025-04-25
  • Python輸入輸出詳解

    一、文件讀寫 Python中文件的讀寫操作是必不可少的基本技能之一。讀寫文件分別使用open()函數中的’r’和’w’參數,讀取文件…

    編程 2025-04-25
  • nginx與apache應用開發詳解

    一、概述 nginx和apache都是常見的web伺服器。nginx是一個高性能的反向代理web伺服器,將負載均衡和緩存集成在了一起,可以動靜分離。apache是一個可擴展的web…

    編程 2025-04-25

發表回復

登錄後才能評論