• spring相关—IOC容器—指定扫描包时要(不)包含的类


    此处涉及两个标签:

      1、使用context:include-filter指定扫描包时要包含的类

      2、使用context:exclude-filter指定扫描包时不包含的类

    用处:在整合spring和springMVC时会用到

    < context:component-scan base-package ="com.neuedu.ioc.bean"/>    
        [1]base-package属性指定一个需要扫描的基类包,Spring容器将会扫描这个基类包及其子包中的所有类。
        [2]当需要扫描多个包时可以使用逗号分隔,
        [3]如果仅希望扫描特定的类而非基包下的所有类,可使用resource-pattern属性过滤特定的类,示例:

      <context:component-scan base-package="com.neuedu.component" resource-pattern="autowire/*.class"/>

        [4]包含与排除
            ●<context:include-filter>子节点表示要包含的目标类
                注意:通常需要与use-default-filters属性配合使用才能够达到“仅包含某些组件”这样的效果。
                即:通过将use-default-filters属性设置为false,禁用默认过滤器,然后扫描的就只是include-filter中的规则
                指定的组件了。
            ●<context:exclude-filter>子节点表示要排除在外的目标类
            ●component-scan下可以拥有若干个include-filtejr和exclude-filter子节

    示例:1、不包含@Controller注解类

    <context:component-scan base-package="com.neuedu.spring.entity">
        <!-- annotation表明 expression中填写的是注解的全类名-->
        <context:exclude-filter type="annotation" expression="org.springframework.stereotype.Controller"/>
    </context:component-scan>

    2、不包含自己创建的UserController类

    <context:component-scan base-package="com.neuedu.spring.entity">
        <!-- aspectj表示expression中为自己创建的UserController类的全类名-->
             <context:exclude-filter type="aspectj" expression="com.neuedu.spring.entity.UserController"/>
        </context:component-scan>

    3、仅包含@Controller注解类(use-default-filters属性设置为false,禁用默认过滤器)

    <context:component-scan base-package="com.neuedu.spring.entity" use-default-filters="false">
            <context:include-filter type="annotation" expression="org.springframework.stereotype.Controller"/>
        </context:component-scan>

    4、仅包含自己创建的UserController类

    <context:component-scan base-package="com.neuedu.spring.entity" use-default-filters="false">
            <context:include-filter type="aspectj" expression="com.neuedu.spring.entity.UserController"/>
        </context:component-scan>
  • 相关阅读:
    测试
    【八十一题题目合集 微软面试100题 第八十一题】
    排队问题 【微软面试100题 第八十题】
    fiddler 正则 重定向IP
    浮动div 内部元素 垂直居中
    css 诡异的多出来的几像素
    前端开发 注意问题(1)input type=“number”
    实时监听input输入
    sudo执行命令时环境变量被重置的解决方法
    laravel4 中 Redirect::intended和Redirect::guest的关系及用法
  • 原文地址:https://www.cnblogs.com/kangxingyue-210/p/7445423.html
Copyright © 2020-2023  润新知