最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Springmvc常用的注解代碼示例

 更新時間:2025年11月24日 11:34:37   作者:小王不愛笑132  
本文介紹了SpringMVC中常用的控制器和請求映射注解,包括@Controller、@RequestMapping等,以及請求參數(shù)綁定注解,如@RequestParam、@RequestBody等,本文結(jié)合實例代碼給大家介紹的非常詳細,感興趣的朋友一起看看吧

一、控制器與請求映射注解

1. @Controller

  • 作用:標識當(dāng)前類為 SpringMVC 控制器,由 Spring 容器自動掃描管理。
  • 代碼示例
@Controller // 標識此類為控制器
@RequestMapping("/user")
public class UserController {
    // 控制器方法...
}
  • 講解:需配合配合 Spring 配置文件中開啟組件掃描(<context:component-scan base-package="com.qcby"/>),否則才能使注解生效。

2. @RequestMapping

  • 作用:映射請求 URL 與控制器方法的對應(yīng)關(guān)系,可標注在類或方法上。
  • 代碼示例
@Controller
@RequestMapping("/user") // 類級路徑(基礎(chǔ)路徑)
public class UserController {
    // 方法級路徑,完整 URL 為 /user/save
    @RequestMapping(
        value = "/save", 
        method = RequestMethod.POST, // 限制請求方式為 POST
        params = "username" // 要求請求必須攜帶 username 參數(shù)
    )
    public String save() {
        System.out.println("用戶保存成功");
        return "success";
    }
}
  • 講解
    • 類級注解 + 方法級注解組合成完整請求路徑(如 /user/save)。
    • method 屬性指定允許的請求方式(GET/POST 等),不指定則允許所有方式。
    • params 屬性用于校驗請求參數(shù),確保請求攜帶指定參數(shù)。

二、請求參數(shù)綁定注解

1. @RequestParam

  • 作用:解決請求參數(shù)名與方法參數(shù)名不一致的問題,強制綁定參數(shù)。
  • 代碼示例
@RequestMapping("/find")
public String find(
    @RequestParam(
        value = "name", // 映射請求參數(shù)名(前端傳遞的參數(shù)名為 name)
        required = false, // 非必須傳遞,默認值為 true
        defaultValue = "guest" // 無參數(shù)時的默認值
    ) String username
) {
    System.out.println("用戶名:" + username);
    return "success";
}
  • 講解:若前端傳遞參數(shù)為 name=張三,通過 @RequestParam 可映射到方法參數(shù) username。

2. @RequestBody

  • 作用:獲取請求體中的原始數(shù)據(jù)(如 JSON、XML 或表單數(shù)據(jù)),適用于 POST 請求。
  • 代碼示例
@RequestMapping("/getBody")
public String getBody(@RequestBody String requestBody) {
    System.out.println("請求體內(nèi)容:" + requestBody); // 輸出原始請求數(shù)據(jù)
    return "success";
}
  • 講解:常用于接收前端發(fā)送的 JSON 數(shù)據(jù)(需配合 Jackson 等 JSON 解析依賴),直接獲取字符串形式的請求體。

3. @RequestHeader

  • 作用:獲取 HTTP 請求頭中的信息(如瀏覽器類型、Accept 格式等)。
  • 代碼示例
@RequestMapping("/getHeader")
public String getHeader(@RequestHeader("User-Agent") String userAgent) {
    System.out.println("瀏覽器信息:" + userAgent); // 輸出瀏覽器類型信息
    return "success";
}
  • 講解:通過參數(shù) value 指定請求頭名稱,可獲取客戶端的環(huán)境信息。

4. @CookieValue

  • 作用:獲取請求中攜帶的 Cookie 值(如 JSESSIONID)。
  • 代碼示例
@RequestMapping("/getCookie")
public String getCookie(@CookieValue("JSESSIONID") String sessionId) {
    System.out.println("會話 ID:" + sessionId); // 輸出當(dāng)前會話的 JSESSIONID
    return "success";
}
  • 講解:用于獲取客戶端存儲的 Cookie 數(shù)據(jù),常用于會話跟蹤。

5. @DateTimeFormat

  • 作用:指定日期類型參數(shù)的解析格式,解決字符串與 Date 類型的轉(zhuǎn)換問題。
  • 代碼示例
public class User {
    private String username;
    // 指定日期格式為 yyyy-MM-dd HH:mm:ss
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date birthday;
    // getter/setter 省略
}
  • 控制器方法
@RequestMapping("/saveUser")
public String saveUser(User user) {
    System.out.println("生日:" + user.getBirthday()); // 自動轉(zhuǎn)換為 Date 類型
    return "success";
}
  • 講解:前端傳遞 birthday=2023-10-01 12:00:00 時,會自動解析為 Date 對象。

三、其他常用注解(擴展)

1. @PathVariable(REST 風(fēng)格)

  • 作用:獲取 URL 路徑中的參數(shù)(適用于 RESTful 接口)。
  • 代碼示例
@RequestMapping("/user/{id}")
public String getUserById(@PathVariable("id") Integer userId) {
    System.out.println("用戶 ID:" + userId); // 獲取路徑中的 id 參數(shù)
    return "success";
}
  • 講解:請求 URL 為 /user/100 時,userId 會被賦值為 100。

2. @ResponseBody

  • 作用:將方法返回值直接作為響應(yīng)體返回(而非跳轉(zhuǎn)視圖),常用于 AJAX 請求。
  • 代碼示例
@RequestMapping("/getJson")
@ResponseBody // 返回 JSON 數(shù)據(jù),而非視圖
public User getJson() {
    User user = new User();
    user.setUsername("張三");
    return user; // 需配合 Jackson 依賴,自動轉(zhuǎn)換為 JSON
}
  • 講解:需在 Spring 配置文件中開啟 <mvc:annotation-driven/> 以支持 JSON 轉(zhuǎn)換。

四、注解使用注意事項

  1. 路徑?jīng)_突@RequestMapping 標注的路徑需唯一,避免不同方法映射同一 URL。
  2. 參數(shù)校驗@RequestParam 的 required=true 時,若前端未傳參數(shù)會拋出異常,需注意處理。
  3. 日期轉(zhuǎn)換優(yōu)先級:自定義類型轉(zhuǎn)換器(實現(xiàn) Converter 接口)優(yōu)先級高于 @DateTimeFormat。
  4. 配置支持:所有注解需在 Spring 配置文件中開啟 <mvc:annotation-driven/> 才能生效(自動注冊處理器映射器和適配器)。

到此這篇關(guān)于Springmvc常用的注解代碼示例的文章就介紹到這了,更多相關(guān)Springmvc注解內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 淺談java多態(tài)的實現(xiàn)主要體現(xiàn)在哪些方面

    淺談java多態(tài)的實現(xiàn)主要體現(xiàn)在哪些方面

    下面小編就為大家?guī)硪黄獪\談java多態(tài)的實現(xiàn)主要體現(xiàn)在哪些方面。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2016-09-09
  • Java位圖Bitmap從入門到實戰(zhàn)應(yīng)用詳解

    Java位圖Bitmap從入門到實戰(zhàn)應(yīng)用詳解

    位圖(Bitmap)作為位運算的經(jīng)典應(yīng)用之一,通過巧妙地利用二進制位來表示數(shù)據(jù)的存在性或狀態(tài),實現(xiàn)了對大規(guī)模數(shù)據(jù)的高效存儲與處理,這篇文章主要介紹了Java位圖Bitmap從入門到實戰(zhàn)應(yīng)用的相關(guān)資料,需要的朋友可以參考下
    2025-09-09
  • java web用servlet監(jiān)聽器實現(xiàn)顯示在線人數(shù)

    java web用servlet監(jiān)聽器實現(xiàn)顯示在線人數(shù)

    這篇文章主要為大家詳細介紹了java web用servlet監(jiān)聽器實現(xiàn)顯示在線人數(shù),文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-03-03
  • 一文徹底弄懂Spring?Boot自動配置

    一文徹底弄懂Spring?Boot自動配置

    在SpringBoot框架中自動配置是其最核心的特性之一,也是"約定優(yōu)于配置"理念的集中體現(xiàn),這篇文章主要介紹了Spring?Boot自動配置的相關(guān)資料,文中通過代碼介紹的非常詳細,需要的朋友可以參考下
    2025-11-11
  • spring?boot?redis中的key失效監(jiān)聽的問題解決

    spring?boot?redis中的key失效監(jiān)聽的問題解決

    本文主要介紹了spring?boot?redis中的key失效監(jiān)聽的問題解決,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2025-07-07
  • 使用Java調(diào)用??低昐DK實現(xiàn)攝像頭預(yù)覽超詳細教程

    使用Java調(diào)用海康威視SDK實現(xiàn)攝像頭預(yù)覽超詳細教程

    現(xiàn)在制造業(yè)很多都是用的??档臄z像頭,作為程序員有時候需要對接海康攝像頭,這篇文章主要介紹了使用Java調(diào)用??低昐DK實現(xiàn)攝像頭預(yù)覽的相關(guān)資料,需要的朋友可以參考下
    2025-07-07
  • 深入詳解Java中synchronized鎖升級的套路

    深入詳解Java中synchronized鎖升級的套路

    synchronized鎖是啥?鎖其實就是一個對象,隨便哪一個都可以,Java中所有的對象都是鎖,換句話說,Java中所有對象都可以成為鎖。本文我們主要來聊聊synchronized鎖升級的套路,感興趣的可以收藏一下
    2023-04-04
  • Spring如何使用PropertyPlaceholderConfigurer讀取文件

    Spring如何使用PropertyPlaceholderConfigurer讀取文件

    這篇文章主要介紹了Spring如何使用PropertyPlaceholderConfigurer讀取文件,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2019-12-12
  • Java 內(nèi)存溢出的原因和解決方法

    Java 內(nèi)存溢出的原因和解決方法

    這篇文章主要介紹了Java 內(nèi)存溢出的原因和解決方法,幫助大家更好的維護Java程序,保持穩(wěn)定性,感興趣的朋友可以了解下
    2020-12-12
  • 基于SpringBoot實現(xiàn)一個安全可靠的滑塊拼圖驗證系統(tǒng)

    基于SpringBoot實現(xiàn)一個安全可靠的滑塊拼圖驗證系統(tǒng)

    滑塊拼圖驗證是一種行為驗證技術(shù),通過要求用戶將拼圖塊拖動到正確位置來區(qū)分人類用戶和自動化程序,本文給大家介紹了基于SpringBoot實現(xiàn)滑塊拼圖驗證的完整代碼,需要的朋友可以參考下
    2026-03-03

最新評論

都兰县| 遵化市| 珲春市| 法库县| 曲松县| 芦山县| 建昌县| 保靖县| 贵溪市| 肥西县| 兴仁县| 麻栗坡县| 韩城市| 余干县| 武隆县| 喀什市| 汕尾市| 东辽县| 张家界市| 赤城县| 建昌县| 柳河县| 河东区| 漾濞| 宽甸| 麟游县| 壤塘县| 喜德县| 白城市| 台中市| 肥城市| 浠水县| 淅川县| 金溪县| 闽清县| 洛川县| 龙岩市| 牙克石市| 巩留县| 腾冲县| 和林格尔县|