spring 与 spring mvc 整合 配置讨论

主要问题是:<context:component-scan> 是否 也实现了<mvc:annotation-driven />的作用

前提:
最近学习了 spring 与 spring mvc 整合 的很多博文,主要就是在讲配置文件,注解使用。自己也边学边搭建了一个web工程,基于 spring(spring mvc) 3.2.5 mybaits 3.2.1
整合主要涉及到3个配置文件web工程配置文件: web.xml  spring配置文件:applicationContext.xml springMVC配置文件:**-servlet.xml

web.xml配置如下

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0">
  <display-name>TestProgect</display-name>
    <servlet>
    <servlet-name>spring</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <init-param>
      <param-name>contextConfigLocation</param-name>
      <param-value>classpath:**-servlet.xml</param-value>
    </init-param>
  </servlet>
  <servlet-mapping>
    <servlet-name>spring</servlet-name>
    <!-- <url-pattern>*.do</url-pattern> -->
    <url-pattern>/</url-pattern>
  </servlet-mapping>
  
  <context-param>
    <param-name>contextConfigLocation</param-name>
    <param-value>classpath:applicationContext.xml</param-value>
  </context-param>
  <listener>
    <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
  </listener>
  
</web-app>

applicationContext.xml 配置如下:

<?xml version="1.0" encoding="UTF-8"?>
<beans 
	xmlns="http://www.springframework.org/schema/beans"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
	xmlns:aop="http://www.springframework.org/schema/aop"
	xmlns:context="http://www.springframework.org/schema/context"
	xmlns:tx="http://www.springframework.org/schema/tx"
	xsi:schemaLocation="
		http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd  
        http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd  
        http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd  
        http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx.xsd">
	 <context:component-scan base-package="com.yhd">
	 	 <context:exclude-filter type="annotation" expression="org.springframework.stereotype.Controller"/>
	</context:component-scan> 
  
</beans>

 **-servlet.xml 配置如下:

<?xml version="1.0" encoding="UTF-8"?>
<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"
	   xmlns:mvc="http://www.springframework.org/schema/mvc"
	   xsi:schemaLocation="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
        http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd">
    
<mvc:annotation-driven /> 
   <context:component-scan base-package="com.yhd" use-default-filters="false">
   		<context:include-filter type="annotation" expression="org.springframework.stereotype.Controller" />
   </context:component-scan>
	
	<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">  
	    <property name="viewClass" value="org.springframework.web.servlet.view.JstlView"/>  
	    <property name="prefix" value="/WEB-INF/page/"/>  
	    <property name="suffix" value=".jsp"/>  
	 </bean>
</beans>

 如上配置 系统正常运行,但是 我发现当我将  spring mvc 配置文件 ** -servlet.xml中的<mvc:annotation-driven />去掉以后,项目还是能够正常运行。由此提出疑问:<context:component-scan> 是否 也实现了<mvc:annotation-driven />的作用。附件是我去掉其他东西提取出的完整工程(包含包)大家可以下载测试。

猜你喜欢

转载自cnng-baby.iteye.com/blog/2152522