springmvc-servlet.xml中use-default-filters的作用

来源:互联网 发布:共享wifi软件 编辑:程序博客网 时间:2024/06/10 23:54

1、<!-- 启用注解扫描,并定义组件查找规则 ,mvc层只负责扫描@Controller -->

[java] view plain copy 在CODE上查看代码片派生到我的代码片
  1. <context:component-scan base-package="com.nn.web.controller"  
  2.         use-default-filters="false">  
  3.         <context:include-filter type="annotation"  
  4.             expression="org.springframework.stereotype.Controller" />  
  5.     </context:component-scan>  


2、在context:component-scan可以添加use-default-filters,spring配置中的use-default-filters用来指示是否自动扫描带有@Component@Repository@Service@Controller的类。默认为true,即默认扫描。


3、如果想要过滤其中这四个注解中的一个,比如@Repository,可以添加<context:exclude-filter />子标签:

[java] view plain copy 在CODE上查看代码片派生到我的代码片
  1. <context:component-scan base-package="tv.crm" scoped-proxy="targetClass" use-default-filters="true">  
  2.     <context:exclude-filter type="annotation" expression="org.springframework.stereotype.Repository"/>  
  3. </context:component-scan>  

[java] view plain copy 在CODE上查看代码片派生到我的代码片
  1. </pre><p></p><pre>  

4、<context:include-filter/>子标签是用来添加扫描注解的。

[java] view plain copy 在CODE上查看代码片派生到我的代码片
  1. <context:component-scan base-package="tv.crm" scoped-proxy="targetClass" use-default-filters="false">  
  2.     <context:include-filter type="annotation" expression="org.springframework.stereotype.Repository"/>  
  3. </context:component-scan>  

5、但是如果添加和排除的是相同,则必须include-filter在前,exclude-filter在后,否则配置不符合spring -context-3.0.xsd要求,Spring容器解析时会出错。上面的配置会把@Repository注解的类排除掉。
[java] view plain copy 在CODE上查看代码片派生到我的代码片
  1. <span style="font-size:18px;"><context:component-scan base-package="tv.crm" scoped-proxy="targetClass" use-default-filters="false">  
  2. <context:include-filter type="annotation" expression="org.springframework.stereotype.Repository"/>  
  3. <context:exclude-filter type="annotation" expression="org.springframework.stereotype.Repository"/>  
  4. </context:component-scan></span> 
0 0