1. 程式人生 > 其它 >springmvc-02(配置版與註解版區別)

springmvc-02(配置版與註解版區別)

首先,我們來看配置版和註解版的相同步驟:

1.新建一個Moudle , springmvc-02-hello , 新增web的支援!

2.確定匯入了SpringMVC 的依賴!

3.配置web.xml , 註冊DispatcherServlet

4.編寫SpringMVC 的 配置檔案!名稱:springmvc-servlet.xml : [servletname]-servlet.xml

說明,這裡的名稱要求是按照官方來的

在springmvc.xml檔案中也就是配置版和註解版不同的點:

我們先來看看配置版:

配置版:

1)新增處理器對映器

<bean class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping"/>

2)新增處理器介面卡

<bean class="org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter"/>

3)新增檢視解析器

<!--檢視解析器:DispatcherServlet給他的ModelAndView-->
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver" id="InternalResourceViewResolver">
<!--字首-->
<property name="prefix" value="/WEB-INF/jsp/"/>
<!--字尾-->
<property name="suffix" value=".jsp"/>
</bean>

4)

編寫我們要操作業務Controller ,要麼實現Controller介面,要麼增加註解;需要返回一個ModelAndView,裝資料,封檢視;

5)將自己的類交給SpringIOC容器,註冊bean

6)寫要跳轉的jsp頁面,顯示ModelandView存放的資料,以及我們的正常頁面;

註解版:註解版的xml檔案的處理器對映器和處理器介面卡的處理方式變得很方便:

<!-- 自動掃描包,讓指定包下的註解生效,由IOC容器統一管理 -->
<context:component-scan base-package="com.kuang.controller"/>

<!-- 讓Spring MVC不處理靜態資源 -->
<mvc:default-servlet-handler />

<!--
支援mvc註解驅動
在spring中一般採用@RequestMapping註解來完成對映關係
要想使@RequestMapping註解生效
必須向上下文中註冊DefaultAnnotationHandlerMapping
和一個AnnotationMethodHandlerAdapter例項
這兩個例項分別在類級別和方法級別處理。
而annotation-driven配置幫助我們自動完成上述兩個例項的注入。
-->
<mvc:annotation-driven />

可以看到,僅僅這一行程式碼註解,就將處理器對映器與處理器介面卡為我們自動注入,省去我們很多時間

並且他們的方便不僅如此,還體現在我們接下來的Controller類中

因為我們已經寫入了自動掃描包,所以不需要向springmvc.xml中註冊bean,

返回jsp頁面直接可以return"hello",檢視解析器會為我們自動識別

注意

@Controller是為了讓Spring IOC容器初始化時自動掃描到;

@RequestMapping是為了對映請求路徑,這裡因為類與方法上都有對映所以訪問時應該是/HelloController/hello;

方法中宣告Model型別的引數是為了把Action中的資料帶到檢視中;

方法返回的結果是檢視的名稱hello,加上配置檔案中的前後綴變成WEB-INF/jsp/hello.jsp。

總結:

通過註解方式,我們只需要手動配置檢視解析器,而處理器對映器和處理器介面卡只需要開啟註解驅動即可,而省去了大段的xml配置

(強烈推薦大家種草)