1. 程式人生 > 其它 >Spring和SpringMVC整合

Spring和SpringMVC整合

SpringMVC和Spring整合的目的是為了分工明確。例如:SpringMVC的配置檔案就來配置和網站轉發邏輯以及網站功能有關的配置,如:檢視解析器、檔案上傳解析器、支援ajax....

而Spring的配置檔案用來配置和業務有關的,如:事物控制、資料來源....

import

可以在resources資料夾下建立三個配置檔案:include-config.xmlspring-configspringmvc-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>