在spring的配置文件中:

 <?xml version="1.0" encoding="UTF-8"?>

<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:context="
http://www.springframework.org/schema/context"
       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-3.0.xsd
       
http://www.springframework.org/schema/context
       
http://www.springframework.org/schema/context/spring-context-3.0.xsd">

       <context:annotation-config/> 

</beans>

 

 我们会看到这样写:

 <?xml version="1.0" encoding="UTF-8"?>

<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:context="
http://www.springframework.org/schema/context"
       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-3.0.xsd
       
http://www.springframework.org/schema/context
       
http://www.springframework.org/schema/context/spring-context-3.0.xsd">

    <context:component-scan base-package="cn.test">
        <context:exclude-filter type="annotation"   expression="org.springframework.stereotype.Controller"/>
    </context:component-scan>

</beans>

<context:component-scan/> 配置项不但启用了对类包进行扫描以实施注释驱动 Bean 定义的功能,同时还启用了注释驱动自动注入的功能,即还隐式地在内部注册了
AutowiredAnnotationBeanPostProcessor 和 CommonAnnotationBeanPostProcessor。

因此当使用 <context:component-scan/> 后,就可以将 <context:annotation-config/> 移除了。

<context:component-scan/> 的base-package 属性指定了需要扫描的类包,类包及其递归子包中所有的类都会被处理。

通过exclude-filter把所有@Controller注解的控制器组件排除。我们知道@Controller一般标注的是action,不用把action注入的什么地方。