Spring和SpringMVC整合
阿新 • • 發佈:2021-08-16
SpringMVC和Spring整合的目的是為了分工明確。例如:SpringMVC的配置檔案就來配置和網站轉發邏輯以及網站功能有關的配置,如:檢視解析器、檔案上傳解析器、支援ajax....
而Spring的配置檔案用來配置和業務有關的,如:事物控制、資料來源....
import
可以在resources
資料夾下建立三個配置檔案:include-config.xml
、spring-config
、springmvc-confg
在include-config.xml
配置檔案中使用spring提供的import
標籤引入併合並另外兩個配置檔案
<?xml version="1.0" encoding="UTF-8"?> <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.xsd"> <import resource="spring-config.xml"/> <import resource="springmvc-config.xml"/> </beans>
這樣就搞定了。。。
Spring和SpringMVC分容器
Spring管理業務邏輯元件,SpringMVC管理控制器元件
在SpringMVC
配置檔案中指定掃描物件並且禁用預設規則
type
指定排除方式
<context:component-scan base-package="top.ctong.springmvc" use-default-filters="false"> <context:include-filter type="annotation" expression="org.springframework.stereotype.Controller"/> </context:component-scan>
在Spring
配置檔案中指定接管所有業務邏輯元件
<context:component-scan base-package="top.ctong.springmvc">
<context:exclude-filter type="annotation" expression="org.springframework.stereotype.Controller"/>
</context:component-scan>
最後需要在web.xml
檔案中啟動兩個容器
<context-param> <param-name>contextConfigLocation</param-name> <param-value>classpath:spring-config.xml</param-value> </context-param> <listener> <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> </listener> <servlet> <servlet-name>dispatcherServlet</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <init-param> <param-name>contextConfigLocation</param-name> <param-value>classpath:springmvc-config.xml</param-value> </init-param> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>dispatcherServlet</servlet-name> <url-pattern>/</url-pattern> </servlet-mapping>