亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

SpringMVC中的常用注解和用法舉例詳解

 更新時(shí)間:2024年08月23日 11:01:28   作者:深魚(yú)~  
在Spring和SpringMVC中,注解的使用大大簡(jiǎn)化了配置,提高了代碼的可讀性和可維護(hù)性,這篇文章主要給大家介紹了關(guān)于SpringMVC中常用注解和用法的相關(guān)資料,需要的朋友可以參考下

前言:

MVC是?種架構(gòu)設(shè)計(jì)模式,也?種思想,?SpringMVC是對(duì)MVC思想的具體實(shí)現(xiàn).除此之外,Spring MVC還是?個(gè)Web框架.

總結(jié)來(lái)說(shuō),Spring MVC是?個(gè)實(shí)現(xiàn)了MVC模式的We框架

1.@RequestMapping

@RequestMapping 是Spring Web MVC應(yīng)?程序中最常被?到的注解之?,它是?來(lái)注冊(cè)接?的路由映射的

路由映射:當(dāng)??訪問(wèn)?個(gè)URL時(shí),將??的請(qǐng)求對(duì)應(yīng)到程序中某個(gè)類的某個(gè)?法的過(guò)程就叫路由映射
@RequestMapping既可修飾類,也可以修飾?法,當(dāng)修飾類和?法時(shí),訪問(wèn)的地址是類路徑+?法路徑

@RequestMapping標(biāo)識(shí)?個(gè)類:設(shè)置映射請(qǐng)求的請(qǐng)求路徑的初始信息

@RequestMapping標(biāo)識(shí)?個(gè)?法:設(shè)置映射請(qǐng)求請(qǐng)求路徑的具體信息

@RequestMapping("/user")
@RestController
public class UserController {
    @RequestMapping("/sayHi")
    public String sayHi(){
        return "hello,Spring MVC";
    }
}

訪問(wèn)地址:http://127.0.0.1:8080/user/sayHi

@RequestMapping 的URL路徑也可以是多層路徑,最終訪問(wèn)時(shí),依然是類路徑+?法路徑

@RequestMapping("/user/m1")
@RestController
public class UserController {
    @RequestMapping("/say/hi")
    public String sayHi(){
        return "hello,Spring MVC";
    }
}

訪問(wèn)路徑:http://127.0.0.1:8080/user/m1/say/hi

2.@RequestParam

用于將請(qǐng)求參數(shù)綁定到方法參數(shù)上(后端參數(shù)重命名,傳遞集合等)

@Controller
public class MyController {
 
    @RequestMapping("/greet")
    public String greet(@RequestParam("name") String name) {
        // Method logic using name parameter
        return "greetPage";
    }
}

 使用@RequestParam 注解的方法參數(shù)默認(rèn)為必填參數(shù)

可以使用 required 屬性將@RequestParam配置為可選參數(shù):

@Controller
public class MyController {
 
    @RequestMapping("/greet")
    public String greet(@RequestParam(value = "name2", required = false) String name) {
        // Method logic using name parameter
        return "greetPage";
    }
}

3.@RequestBody

用于將 HTTP 請(qǐng)求體中的數(shù)據(jù)綁定到控制器方法的參數(shù)上,即獲取 POST 請(qǐng)求中的數(shù)據(jù)并映射到方法參數(shù)。它通常用于處理 JSON 或 XML 格式的請(qǐng)求體數(shù)據(jù)

@Controller
@RequestMapping("/example")
public class ExampleController {

    @RequestMapping(value = "/addUser", method = RequestMethod.POST)
    @ResponseBody
    public String addUser(@RequestBody User user) {
        // 處理用戶數(shù)據(jù)
        return "User added successfully!";
    }
}

 在上述示例代碼中,@RequestBody 用于將 HTTP 請(qǐng)求體中的數(shù)據(jù)轉(zhuǎn)換成 User 對(duì)象,并將其作為參數(shù)傳遞給 addUser() 方法進(jìn)行處理

4.@PathVariable

path variable:路徑變量

和字?表達(dá)的意思?樣,這個(gè)注解主要作?在請(qǐng)求URL路徑上的數(shù)據(jù)綁定,默認(rèn)傳遞參數(shù)寫在URL上,SpringMVC就可以獲取到

@RequestMapping("/m8/{id}/{name}")
public String method8(@PathVariable Integer id, @PathVariable("name") String
userName){
    return "解析參數(shù)id:"+id+",name:"+userName;
}

使?瀏覽器發(fā)送請(qǐng)求:http://127.0.0.1:8080/param/m8/5/zhangsan 

5.@RestController(返回頁(yè)面)

其方法的返回值會(huì)被直接寫入 HTTP 響應(yīng)體中,而不是被視圖解析器解析為視圖。通常返回的是 JSON 或 XML 數(shù)據(jù)

@RestController
@RequestMapping("/example")
public class ExampleController {

    @RequestMapping(value = "/hello", method = RequestMethod.GET)
    public String hello() {
        return "Hello, World!";
    }
}

6.@Controller(返回視圖)

在方法中直接返回對(duì)象時(shí),Spring MVC 會(huì)將其作為模型數(shù)據(jù)傳遞給視圖解析器,然后解析為具體的視圖

@Controller
public class MyController {
 
    @RequestMapping("/hello")
    public String hello() {
        return "hello.html";
    }
    //返回html頁(yè)面
}

 當(dāng)在類注解中加上 @ResponseBody 時(shí),返回的為數(shù)據(jù)而不是頁(yè)面

@RestController=@Controller (返回視圖)+ @ResponseBody(返回?cái)?shù)據(jù))

@Controller
public class MyController {
 
    @ResponseBody 
    @RequestMapping("/hello")
    public String hello() {
        return "hello";
    }
    //返回“hello”這個(gè)字符串
}

7.@CookieValue

簡(jiǎn)潔獲取Cookie (一次只能獲取一次cookie信息)

@RequestMapping("/getCookie")
public String cookie(@CookieValue("bite") String bite) {
    return "bite:" + bite;
}

8.@SessionAttribute

@SessionAttributes 注解用于指定哪些模型屬性需要存儲(chǔ)在會(huì)話

@RequestMapping("/getSess2")
public String sess2(@SessionAttribute(value = "username",required = false)
String username) {
    return "username:"+username;
}

總結(jié) 

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

相關(guān)文章

  • Java生成短8位UUID的實(shí)現(xiàn)方案

    Java生成短8位UUID的實(shí)現(xiàn)方案

    在Java中,UUID通常用于生成全局唯一的標(biāo)識(shí)符,標(biāo)準(zhǔn)的UUID是128位的,由32個(gè)十六進(jìn)制數(shù)字組成,并通過(guò)特定的算法保證其在全球范圍內(nèi)的唯一性,本文給大家介紹了一個(gè)簡(jiǎn)單的Java方法,用于生成一個(gè)較短的8位UUID,需要的朋友可以參考下
    2025-01-01
  • java多線程編程之向線程傳遞數(shù)據(jù)的三種方法

    java多線程編程之向線程傳遞數(shù)據(jù)的三種方法

    在多線程的異步開(kāi)發(fā)模式下,數(shù)據(jù)的傳遞和返回和同步開(kāi)發(fā)模式有很大的區(qū)別。由于線程的運(yùn)行和結(jié)束是不可預(yù)料的,因此,在傳遞和返回?cái)?shù)據(jù)時(shí)就無(wú)法象函數(shù)一樣通過(guò)函數(shù)參數(shù)和return語(yǔ)句來(lái)返回?cái)?shù)據(jù)
    2014-01-01
  • 淺談java對(duì)象轉(zhuǎn)json,數(shù)字精確出現(xiàn)丟失問(wèn)題

    淺談java對(duì)象轉(zhuǎn)json,數(shù)字精確出現(xiàn)丟失問(wèn)題

    下面小編就為大家?guī)?lái)一篇淺談java對(duì)象轉(zhuǎn)json, 數(shù)字精確出現(xiàn)丟失問(wèn)題。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-03-03
  • Java直接內(nèi)存和堆內(nèi)存的關(guān)系

    Java直接內(nèi)存和堆內(nèi)存的關(guān)系

    在Java編程中,內(nèi)存管理是一個(gè)重要的話題,本文介紹了Java中兩種主要內(nèi)存類型:堆內(nèi)存和直接內(nèi)存,堆內(nèi)存是JVM管理的主要內(nèi)存區(qū)域,感興趣的朋友跟隨小編一起看看吧
    2024-09-09
  • JSP 開(kāi)發(fā)之hibernate的hql查詢多對(duì)多查詢

    JSP 開(kāi)發(fā)之hibernate的hql查詢多對(duì)多查詢

    這篇文章主要介紹了JSP 開(kāi)發(fā)之hibernate的hql查詢多對(duì)多查詢的相關(guān)資料,希望通過(guò)本文能幫助到大家,需要的朋友可以參考下
    2017-09-09
  • 一文帶你掌握J(rèn)ava8中Lambda表達(dá)式 函數(shù)式接口及方法構(gòu)造器數(shù)組的引用

    一文帶你掌握J(rèn)ava8中Lambda表達(dá)式 函數(shù)式接口及方法構(gòu)造器數(shù)組的引用

    Java 8 (又稱為 jdk 1.8) 是 Java 語(yǔ)言開(kāi)發(fā)的一個(gè)主要版本。 Oracle 公司于 2014 年 3 月 18 日發(fā)布 Java 8 ,它支持函數(shù)式編程,新的 JavaScript 引擎,新的日期 API,新的Stream API 等
    2021-10-10
  • SpringBoot整合MyBatis-Plus的示例代碼

    SpringBoot整合MyBatis-Plus的示例代碼

    這篇文章主要介紹了SpringBoot整合MyBatis-Plus的示例代碼,使用?MyBatis-Plus 可以減少大量的開(kāi)發(fā)時(shí)間,單表的增刪改查可以不用寫 sql 語(yǔ)句,本文主要介紹整合需要主要事項(xiàng),需要的朋友可以參考下
    2022-03-03
  • Mybatis返回map集合時(shí),列的順序與select不一致問(wèn)題

    Mybatis返回map集合時(shí),列的順序與select不一致問(wèn)題

    這篇文章主要介紹了Mybatis返回map集合時(shí),列的順序與select不一致問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-01-01
  • 基于SpringBoot開(kāi)機(jī)啟動(dòng)與@Order注解

    基于SpringBoot開(kāi)機(jī)啟動(dòng)與@Order注解

    這篇文章主要介紹了SpringBoot開(kāi)機(jī)啟動(dòng)與@Order注解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-09-09
  • 基于SpringBoot2的Shiro最簡(jiǎn)配置操作(兩個(gè)文件)

    基于SpringBoot2的Shiro最簡(jiǎn)配置操作(兩個(gè)文件)

    這篇文章主要介紹了基于SpringBoot2的Shiro最簡(jiǎn)配置操作(兩個(gè)文件),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2021-01-01

最新評(píng)論