Spring MVC概述、Spring MVC項目快速搭建、Spring MVC的常用注解、Spring MVC基本配置

一、Spring MVC概述

1.MVC:Model + View + Controller(數(shù)據(jù)模型 + 視圖 + 控制器)

2.三層架構:Presentation tier + Application tier + Data tier(展示層 + 應用層 + 數(shù)據(jù)訪問層)

3.MVC和三層架構的關系,MVC只存在三層架構的展示層。

M實際是數(shù)據(jù)模型,是包含數(shù)據(jù)的對象。在Spring MVC里,有一個專門的類叫Model,用來和V之間的數(shù)據(jù)交互、傳值。

V指的是視圖界面,包含JSP、freeMarker、Velocity、Thymeleaf、Tile等。

C就是控制器(Spring MVC的注解@Controller的類)。

三層架構是整個應用的的架構,是由Spring框架負責管理的,一般項目結(jié)構中都由Service層、Dao層,這兩個反饋在應用層和數(shù)據(jù)訪問層。

二、Spring MVC項目快速搭建

三、Spring MVC的常用注解

1.@Controller

@Controller注解在上,表明這個類是Spring MVC里的Controller,將其聲明為Spring的一個Bean,Dispatcher Servlet會自動掃描注解了此注解的類(原理類似AOP),并將Web請求映射到注解了@RequestMapping的方法上。

2.@RequestMapping

@RequestMapping注解是用來映射Web請求(訪問路徑和參數(shù))、處理類和方法的。

@RequestMapping可以注解在類或方法上。注解在方法上的@RequestMapping路徑會繼承注解在類上的路徑,@RequestMapping支持Servlet的request和response作為參數(shù),也支持對request和response的媒體類型進行配置。

3.@ResponseBody

@ResponseBody支持將返回值放在response體內(nèi),而不是返回一個頁面。此注解可放置在返回值前或者方法上

4.@RequestBody

@RequestBody允許request的參數(shù)在request體中,而不是在直接鏈接在地址后面。此注解放置在參數(shù)前。

5.@PathVariable

@PathVariable用來接收路徑參數(shù),如/mfq/001,可接收001作為參數(shù),此注解放置在參數(shù)前。

6.@RestController

@RestController是一個組合注解,組合了@Controller和ResponseBody。

四、Spring MVC基本配置

1.靜態(tài)資源映射、攔截器配置

2.@ControllerAdvice

通過@ControllerAdvice,可以將對于控制器的全局配置放置在同一個位置,注解了@Controller的類的方法可以使用@ExceptionHandler、@InitBinder、@ModelAttribute注解到方法上,對所有注解了@RequestMapping的控制器內(nèi)的方法有效。

1)@ExceptionHandler:用于全局處理控制器里的異常。

2)@InitBinder:用來設置WebDataBinder,WebDataBinder用來自動綁定前臺請求參數(shù)到Model中。

3)@ModelAttribute:本來的作用是綁定鍵值對到Model里,此處是讓全局的@RequestMapping都能獲得在此處設置的鍵值對。

3.其它配置

1)快捷的ViewController

2)路徑匹配參數(shù)配置

3)更多配置

查看WebMvcConfigurerAdapter、WebMvcConfigurer類的API。

所使用的pom.xml

最后編輯于
?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容