• 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>
  • 相关阅读:
    HDU——1061Rightmost Digit(高次方,找规律)
    HDU——1019Least Common Multiple(多个数的最小公倍数)
    HDU——1013Digital Roots(九余数定理)
    HDU——1020Encoding(水题,string过)
    HDU——2093考试排名(string类及其函数的运用以及istringstream)
    廖雪峰Java3异常处理-2断言和日志-4使用Log4j
    廖雪峰Java3异常处理-2断言和日志-3使用Commons Logging
    廖雪峰Java3异常处理-2断言和日志-2使用JDK Logging
    廖雪峰Java3异常处理-2断言和日志-1使用断言
    Charles问题
  • 原文地址:https://www.cnblogs.com/kangxingyue-210/p/7445423.html
Copyright © 2020-2023  润新知