第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

首頁 慕課教程 Spring MVC 入門教程 Spring MVC 入門教程 XML 方式搭建 Spring MVC 項(xiàng)目

XML 方式搭建 Spring MVC 項(xiàng)目

1. 前言

本章節(jié)將和大家一起講解如何使用 XML 方式搭建 Spring MVC 項(xiàng)目。雖然現(xiàn)在的快速開發(fā)平臺(tái)越來越好用,零 XML 配置的理念逐漸流行,但還是有些項(xiàng)目組還在延用或習(xí)慣使用 XML 方式。

本節(jié)課的重點(diǎn)是你需要掌握使用 XML 配置的流程,最好和本系列的《純 JAVA 搭建 Spring MVC 項(xiàng)目》對比學(xué)習(xí)。

2. 前期準(zhǔn)備

搭建 Spring MVC 項(xiàng)目,可以使用 JAVA 方式進(jìn)行組件信息配置,也可以使用 XML 方式,甚至可以使用 JAVA 和 XML 的混合模式。

現(xiàn)在主流框架都流行使用 JAVA 方式(注解),逐步減少對 XML 方式的依賴。主要是 JAVA 方法更適合 JAVA 開發(fā)者的習(xí)慣,并簡化了配置過程。

Spring MVC 項(xiàng)目是基于 Spring 的核心基礎(chǔ)功能(IOC、AOP)之上的,Spring 建議 Spring MVC 項(xiàng)目中創(chuàng)建 2 個(gè) WebApplication 對象(也稱為上下文容器對象)。這 2 個(gè)上下文對象分別依賴于 DispatcherServletContextLoaderListener 組件完成創(chuàng)建。

  • DispatcherServlet 是整個(gè)程序的調(diào)度中心(本質(zhì)就是一個(gè) Servlet),Spring MVC 程序啟動(dòng)時(shí)必須要初始化完成對 DispatcherServlet 組件的創(chuàng)建。此組件還會(huì)創(chuàng)建一個(gè)與自己有關(guān)聯(lián)的 WebApplication 工廠對象,即 Web 上下文對象
  • ContextLoaderListener 是由 Spring 提供的監(jiān)聽器組件,它可以監(jiān)聽程序的啟動(dòng)過程,并在程序啟動(dòng)時(shí)創(chuàng)建另一個(gè) WebApplication 工廠對象,即 Root 上下文對象
    圖片描述

所以,必須配置好 DispatcherServletContextLoaderListener ,保證程序啟動(dòng)時(shí)創(chuàng)建它們。

使用 XML 配置之前,先準(zhǔn)備好 3 個(gè) XML 文件:

  • web.xml: 理論上,在新建 Spring MVC WEB 項(xiàng)目時(shí), WEB-INF 目錄中會(huì)自動(dòng)創(chuàng)建這個(gè)文件。如果不存在,就需要?jiǎng)?chuàng)建一個(gè);
  • spring-mvc.xml: 由開發(fā)者新建,一般放在項(xiàng)目的 src/main/resources 目錄下面;
  • application.xml: 由開發(fā)者新建,放在項(xiàng)目的 src/main/resources 目錄下面。

Tips: spring-mvc.xml 和 application.xml 的文件名可由開發(fā)者根據(jù)語義自行指定。這 2 個(gè)文件也可以根據(jù)需要更改存放目錄。 這 2 個(gè) XML 文件中必須至少包括 beans 根元素說明。

<beans  xmlns="http://www.springframework.org/schema/beans"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.3.xsd">
</beans>

圖片描述

3. 編輯 web.xml

  1. 打開 web.xml,在 web.xml 中配置 DispatcherServlet 組件相關(guān)的信息;
 <!-- 配置 Spring MVC 的核心組件 DispatcherServlet -->
<servlet>
	<servlet-name>springMVC</servlet-name>
	<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
	<init-param>
		<param-name>contextConfigLocation</param-name>
		<param-value>classpath:spring-mvc.xml</param-value>
	</init-param>
<load-on-startup>0</load-on-startup>
</servlet>
<servlet-mapping>
	<servlet-name>springMVC</servlet-name>
	<url-pattern>/</url-pattern>
</servlet-mapping>

contextConfigLocationDispatcherServlet 的屬性,用于指定與 DispatcherServlet 創(chuàng)建的上下文對象有關(guān)的配置文件的位置。此處為 spring-mvc.xml 文件位置。

Tips: 放在 src/main/resource 目錄中的文件,編譯后都會(huì)放入 classpath (字節(jié)碼目錄中)。

  1. 在 web.xml 中配置 ContextLoaderListener 監(jiān)聽器組件相關(guān)信息;
<context-param>
	<param-name>contextConfigLocation</param-name>
	<param-value>classpath:application.xml</param-value>
</context-param>
<listener>
	<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>

配置臨聽器時(shí),也需要為臨聽器創(chuàng)建的上下文對象指定配置文件的位置,此處指 application.xml 文件的位置。

  1. 測試 web.xml 中的配置是否成功。發(fā)布項(xiàng)目,啟動(dòng) Tomcat 。查看 Tomcat 啟動(dòng)時(shí)在控制臺(tái)中輸出的日志信息。

圖片描述

如果能夠看到上圖標(biāo)注的信息,說明 Spring MVC 初始化成功。

4. 編輯 spring-mvc.xml

spring-mvc.xml 用來配置與 Spring MVC 相關(guān)的組件信息,用來提供給 web 上下文對象進(jìn)行組件維護(hù)。這些組件包括 Spring MVC 核心組件和用戶控制器組件。

<beans xmlns="http://www.springframework.org/schema/beans"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xmlns:mvc="http://www.springframework.org/schema/mvc"
	xmlns:context="http://www.springframework.org/schema/context"
	xsi:schemaLocation="http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc.xsd
		http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
		http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd">
	<!-- 啟動(dòng)注解支持 -->
	<mvc:annotation-driven/>
    <!--靜態(tài)資源交給 tomcat default servelt 處理-->
	<mvc:default-servlet-handler />
    <!--掃描組件位置-->
	<context:component-scan
		base-package="com.mk.web.action"></context:component-scan>
   <!-- 視圖解析器 -->
	<mvc:view-resolvers>
		<bean
			class="org.springframework.web.servlet.view.InternalResourceViewResolver">
			<property name="viewClass" value="org.springframework.web.servlet.view.JstlView" /> 
			<property name="prefix" value="/WEB-INF/jsp"></property>
			<property name="suffix" value=".jsp"></property>
		</bean>
	</mvc:view-resolvers>
</beans>

元素解釋說明:

  • mvc:annotation-driven: 啟動(dòng)注解支持,完全使用 XML 進(jìn)行 Spring MVC 項(xiàng)目維護(hù),并不是很方便。即使在使用 XML 時(shí),建議還是結(jié)合注解一起使用,這也是 Spring MVC 官方建議的;
  • context:component-scan: 指定哪些組件由 Spring MVC 的上下文對象負(fù)責(zé)。除了 Spring MVC 內(nèi)部組件外,再就是用戶控制器;
  • mvc:view-resolvers: 配置具體的視圖解析器。

Tips: 映射器、適配器等組件可以不用顯示配置,采用 Spring MVC 默認(rèn)配置即可。

5. 編輯 application.xml

application.xml 是 Spring 上下文容器所關(guān)聯(lián)的配置文件,可稱其為全局上下文對象的關(guān)聯(lián)配置文件。

<beans xmlns="http://www.springframework.org/schema/beans"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xmlns:context="http://www.springframework.org/schema/context"
	xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.3.xsd
		http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd">
	<context:annotation-config></context:annotation-config>
	<context:component-scan
		base-package="com.mk.web">
		<context:exclude-filter type="annotation"
			expression="org.springframework.stereotype.Controller" />
	</context:component-scan>
</beans>

元素解釋說明:

  • context:annotation-config: 啟動(dòng)注解支持,建議需要全局上下文對象創(chuàng)建、維護(hù)的對象使用注解的方式;
  • context:component-scan: 掃描位置,需要排除開 Spring MVC 容器對象掃描的位置。

Tips: application.xml 文件中一般用來配置業(yè)務(wù)層邏輯組件、數(shù)據(jù)層邏輯組件、通用組件、第三方組件相關(guān)的信息。

6. 測試

在項(xiàng)目的 WEB-INF 目錄下新建 jsp 子目錄,在此子目錄中新建 htllo.jsp 文件,內(nèi)容可任意填寫。

編寫控制器實(shí)例:

@Controller
public class HelloAction implements org.springframework.web.servlet.mvc.Controller {
@RequestMapping("/hello")
public ModelAndView handleRequest(HttpServletRequest request, HttpServletResponse response) throws Exception {
	System.out.println("Bean URL ");
	return “hello”;
}
}

發(fā)布項(xiàng)目、啟動(dòng) tomcat、打開瀏覽器。

在瀏覽器的地址欄中輸入:http://localhost:8888/sm-demo/hello 。如果在瀏覽器中看到下圖信息,則恭喜 Spring MVC 項(xiàng)目的基礎(chǔ)平臺(tái)搭建完成。

圖片描述

7. 小結(jié)

本章節(jié)講解了如何使用 XML 方式搭建 Spring MVC 項(xiàng)目,雖然現(xiàn)在流行使用 JAVA 方式,但 XML 仍然是一個(gè)不錯(cuò)的選擇。

無論是使用 XML 還是 JAVA 方式,其本質(zhì)是一樣的,只是使用了不同的語法方式進(jìn)行表達(dá)。這相當(dāng)于有人用英文或中文對你說 “我愛你”。當(dāng)然,你需要了解英文或中文。對于 Spring MVC 而言,對 XML 和 JAVA 的理解是無障礙的。也意味著你可以隨心選擇 JAVA 或 XML 方式。