SpringMVC 中常用注解

在?SpringMVC?框架的開發中,注解的合理運用能夠極大地提高開發效率和代碼的可維護性。今天,讓我們一起來總結一下?SpringMVC?中一些常用的注解及其用法。

一、@Controller?注解

@Controller?用于標識一個控制器類,該類中的方法用于處理用戶的請求。當?Spring?容器啟動時,會掃描帶有?@Controller?注解的類,并將其注冊為?SpringMVC?中的控制器。

@Controller
public class MyController {// 處理請求的方法
}

二、@RequestMapping?注解

@RequestMapping?用于將一個方法映射到指定的請求路徑上。可以作用于類級別和方法級別。

  • 類級別:定義基礎請求路徑,該類中的方法的請求路徑都是基于此基礎路徑。
@Controller
@RequestMapping("/user")
public class UserController {// 方法級別的請求路徑將基于 "/user"
}
  • 方法級別:精確指定處理請求的方法對應的請求路徑、請求方法等。
@Controller
@RequestMapping("/user")
public class UserController {@RequestMapping(value = "/add", method = RequestMethod.POST)public String addUser() {// 處理添加用戶的邏輯return "success";}
}

?

三、@GetMapping?注解

@GetMapping?是?@RequestMapping?注解的一個快捷方式,專門用于處理?GET?請求。

@Controller
@RequestMapping("/user")
public class UserController {@GetMapping("/list")public String listUsers() {// 處理獲取用戶列表的邏輯return "userList";}
}

四、@PostMapping?注解

@PostMapping?同樣是?@RequestMapping?注解的快捷方式,專門用于處理?POST?請求。

@Controller
@RequestMapping("/user")
public class UserController {@PostMapping("/save")public String saveUser(User user) {// 處理保存用戶的邏輯return "success";}
}

五、@PathVariable?注解

當請求路徑中包含動態參數時,可以使用?@PathVariable?注解來獲取路徑中的參數值。

@Controller
@RequestMapping("/user/{id}")
public class UserController {@GetMappingpublic String getUserById(@PathVariable("id") int userId) {// 根據用戶 ID 獲取用戶信息的邏輯return "userDetail";}
}

六、@RequestParam?注解

用于獲取請求參數的值。可以設置參數的默認值、是否必需等屬性。

@Controller
@RequestMapping("/user")
public class UserController {@GetMapping("/search")public String searchUsers(@RequestParam("keyword") String keyword,@RequestParam(value = "page", defaultValue = "1") int page) {// 根據關鍵字和頁碼進行用戶搜索的邏輯return "searchResult";}
}

七、@ResponseBody?注解

如果方法的返回值不是視圖名稱,而是需要直接將返回的數據以指定的格式(如?JSONXML?等)響應給客戶端,就可以使用?@ResponseBody?注解。

@Controller
@RequestMapping("/api")
public class ApiController {@GetMapping("/data")@ResponseBodypublic List<User> getUserData() {// 獲取用戶數據并返回return userService.getUserList();}
}

?

八、@RestController?注解

@RestController?是?@Controller?和?@ResponseBody?的組合注解。使用?@RestController?注解的控制器類中的所有方法都會將返回值直接響應給客戶端,而不是進行視圖解析。

@RestController
@RequestMapping("/api")
public class ApiController {@GetMapping("/data")public List<User> getUserData() {// 直接以 JSON 格式返回用戶數據return userService.getUserList();}
}

?以上就是?SpringMVC?中一些常用的注解及其用法,熟練掌握這些注解能夠幫助我們更加高效地開發?Web?應用。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/45282.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/45282.shtml
英文地址,請注明出處:http://en.pswp.cn/web/45282.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

ArduPilot開源代碼之AP_AHRS_Backend

ArduPilot開源代碼之AP_AHRS_Backend 1. 源由2. 類繼承關系3. 框架設計2.1 構造函數和析構函數2.2 不可復制2.3 嵌套結構和枚舉2.4 虛方法2.5 靜態方法2.6 實用方法2.7 純虛方法2.8 條件編譯 3. 虛方法設計3.1 初始化3.1.1 構造函數3.1.2 析構函數3.1.3 AP_AHRS_Backend::init …

Chromium CI/CD 之Jenkins實用指南2024-如何創建新節點(三)

1. 前言 在前一篇《Jenkins實用指南2024-系統基本配置&#xff08;二&#xff09;》中&#xff0c;我們詳細介紹了如何對Jenkins進行基本配置&#xff0c;包括系統設置、安全配置、插件管理以及創建第一個Job。通過這些配置&#xff0c;您的Jenkins環境已經具備了基本的功能和…

基于pyqt5實現xlsx選擇器應用程序

環境搭建 基于python3.12pyqt5 pip3 install PyQt5 pip3 install pyinstallerpyinstaller --onefile --windowed test.py代碼 新建main.py import sys from PyQt5.QtWidgets import QApplication, QWidget, QVBoxLayout, QHBoxLayout, QPushButton, QLineEdit, QFileDial…

leetcode 665.非遞減數列

1.題目要求: 給你一個長度為 n 的整數數組 nums &#xff0c;請你判斷在 最多 改變 1 個元素的情況下&#xff0c;該數組能否變成一個非遞減數列。我們是這樣定義一個非遞減數列的&#xff1a; 對于數組中任意的 i (0 < i < n-2)&#xff0c;總滿足 nums[i] < nums[i…

Java 設計模式系列:外觀模式

簡介 外觀模式&#xff08;Facade Pattern&#xff09;是一種設計模式&#xff0c;又名門面模式&#xff0c;是一種通過為多個復雜的子系統提供一個一致的接口&#xff0c;而使這些子系統更加容易被訪問的模式。該模式對外有一個統一接口&#xff0c;外部應用程序不用關心內部…

Android中RecyclerView使用詳解(一)

目錄 概述優點列表布局RecyclerView一、創建RecyclerView并且在布局中綁定二、實現RecyclerView單個item的布局三、給RecyclerView寫一個對應的適配器Adapter1.創建自定義的ViewHolder2.繼承Adapter&#xff0c;泛型使用我們自定義的ViewHolder3.重寫Adapter的三個方法onCreate…

線程安全(二)synchronized 的底層實現原理、鎖升級、對象的內存結構

目錄 一、基礎使用1.1 不加鎖的代碼實現1.2 加鎖的代碼實現二、實現原理2.1 synchronized 簡介2.2 對象監控器(Monitor)2.3 加鎖過程第一步:判斷 Owner 指向第二步:進入 EntryList 阻塞第三步:主動進入 WaitSet 等待三、鎖升級3.1 對象的內存結構3.2 Mark Word 對象頭3.3 …

MySQL sql_safe_updates參數

sql_safe_updates 是 MySQL 中的一個系統變量&#xff0c;用于控制 MySQL 服務器是否允許在沒有使用 KEY 或 LIMIT 子句的 UPDATE 或 DELETE 語句上執行更新或刪除操作。當這個變量被設置為 ON 時&#xff0c;MySQL 會拒絕那些可能影響到表中大量行的 UPDATE 或 DELETE 語句&am…

SpringBoot實戰:多表聯查

1. 保存和更新公寓信息 請求數據的結構 Schema(description "公寓信息") Data public class ApartmentSubmitVo extends ApartmentInfo {Schema(description"公寓配套id")private List<Long> facilityInfoIds;Schema(description"公寓標簽i…

LLM用于時序預測真的不行,連推理能力都沒用到

語言模型真的能用于時序預測嗎&#xff1f;根據貝特里奇頭條定律&#xff08;任何以問號結尾的新聞標題&#xff0c;都能夠用「不」來回答&#xff09;&#xff0c;答案應該是否定的。事實似乎也果然如此&#xff1a;強大如斯的 LLM 并不能很好地處理時序數據。 時序&#xff0…

tkinter-TinUI-xml實戰(11)多功能TinUIxml編輯器

引言 在TinUIXml簡易編輯器中&#xff0c;我們通過TinUI搭建了一個簡易的針對TinUIXml布局的編輯器&#xff0c;基本掌握了TinUIXml布局和TinUIXml的導入與導出。現在&#xff0c;就在此基礎上&#xff0c;對編輯器進行升級。 本次升級的功能&#xff1a; 更合理的xml編輯與…

docker私有倉庫harbor安裝

Harbor默認安裝 下載harbor https://github.com/goharbor/harbor/releases/download/v2.11.0/harbor-offline-installer-v2.11.0.tgz 目前要求docker版本&#xff0c;docker 20.10.10-ce &#xff0c;和docker-compose 1.18.0 查看 docker-compose版本 docker-compose --ver…

Django前后端打通

跨域問題 【 0 】前言 ? ? 同源策略&#xff08;Same Origin Policy&#xff09;是瀏覽器安全策略的重要組成部分&#xff0c;它限制了來自不同源的網頁之間的數據交互&#xff0c;以防止惡意攻擊。當一個網頁嘗試執行與它的源&#xff08;即協議、域名和端口&#xff09…

【區分vue2和vue3下的element UI Carousel 走馬燈組件,分別詳細介紹屬性,事件,方法如何使用,并舉例】

在 Vue 2 中&#xff0c;我們通常使用 Element UI&#xff0c;而在 Vue 3 中&#xff0c;我們則使用 Element Plus 作為其替代品。對于 Carousel 走馬燈組件&#xff0c;這兩個庫提供了相似的功能&#xff0c;但在 Vue 2 和 Vue 3 的上下文中&#xff0c;它們的屬性、事件和方法…

C\C++ 終端輸出帶有顏色的字符

終端顯示帶有顏色的字符 終端顯示帶有顏色的字符 終端顯示帶有顏色的字符背景&#xff1a;測試機器&#xff0c;win10系統&#xff0c; VS2022編寫字體設置不同的顏色背景色光標移動 &#xff08;這個用的估計不是很多&#xff09;字體設置動態顯示C cout 也可以測試代碼準確的…

接口基礎知識3:詳解url

課程大綱 一、定義 URL即訪問的鏈接&#xff0c;是Uniform Resource Locator的縮寫&#xff0c;譯為"統一資源定位符"。 URL是一種URI&#xff0c;它標識一個互聯網資源&#xff0c;并指定對其進行操作或獲取該資源的方法。可能通過對主要訪問手段的描述&#xff0c…

SpringBoot詳細解析

1.什么是springboot springboot也是spring公司開發的一款框架。為了簡化spring項目的初始化搭建的。那么spring對應springboot有什么缺點呢&#xff1f; spring項目搭建的缺點: 配置麻煩依賴tomcat啟動慢 2.springboot的特點 自動配置 Spring Boot的自動配置是一個運行時&…

Docker 安裝ros 使用rviz 等等圖形化程序

Docker 安裝ros 使用rviz 等等圖形化程序 ubuntu 版本與ros 發行版本對應 如何安裝其它版本ros 此時考慮使用docker 易于維護 地址&#xff1a; https://hub.docker.com/r/osrf/ros 我主機是 ubuntu22.04 使用這個標簽 melodic-desktop-full 1 clone 鏡像到本機 docker pu…

Android OkHttp3中HttpLoggingInterceptor使用

目錄 一 概述1.1 日志級別 二 使用2.1 引入依賴2.2 創建對象2.3 添加攔截器 三 結果展示3.1 日志級別為BODY3.2 日志級別為BASIC3.3 日志級別為HEADERS 參考 一 概述 HttpLoggingInterceptor是OkHttp3提供的攔截器&#xff0c;用來記錄HTTP請求和響應的詳細信息。 1.1 日志級…

基于IDEA的Lombok插件安裝及簡單使用

lombok介紹 Lombok能以注解形式來簡化java代碼&#xff0c;提高開發效率。開發中經常需要寫的javabean&#xff0c;都需要花時間去添加相應的getter/setter&#xff0c;也許還要去寫構造器、equals等方法&#xff0c;而且需要維護。而Lombok能通過注解的方式&#xff0c;在編譯…