• Spring自定义如何扫描


    Using filters to customize scanning

    By default, classes annotated with @Component, @Repository, @Service, @Controller, or a custom annotation that itself is annotated with @Component are the only detected candidate components. However, you can modify and extend this behavior simply by applying custom filters. Add them as include-filter or exclude-filter sub-elements of the component-scan element. Each filter element requires the type and expression attributes. The following table describes the filtering options.

    Table 3.5. Filter Types

    Filter TypeExample ExpressionDescription
    annotation org.example.SomeAnnotation An annotation to be present at the type level in target components.
    assignable org.example.SomeClass A class (or interface) that the target components are assignable to (extend/implement).
    aspectj org.example..*Service+ An AspectJ type expression to be matched by the target components.
    regex org\.example\.Default.* A regex expression to be matched by the target components class names.
    custom org.example.MyTypeFilter A custom implementation of the org.springframework.core.type .TypeFilter interface.

    The following example shows the XML configuration ignoring all @Repository annotations and using "stub" repositories instead.

    <beans>
    
       <context:component-scan base-package="org.example">
          <context:include-filter type="regex" expression=".*Stub.*Repository"/>
          <context:exclude-filter type="annotation"
                                  expression="org.springframework.stereotype.Repository"/>
       </context:component-scan>
    
    </beans>
    [Note] Note

    You can also disable the default filters by providing use-default-filters="false" as an attribute of the <component-scan/> element. This will in effect disable automatic detection of classes annotated with @Component, @Repository, @Service, or @Controller.

    详见:

    http://static.springsource.org/spring/docs/3.0.x/spring-framework-reference/html/beans.html#beans-scanning-filters

  • 相关阅读:
    mac sourceTree 每次操作提示需要密码
    docker-compose.yml开机启动
    详解Oracle 21c 中的只读Oracle主⽬录特性 (ROOH)
    使用kubeadm一键部署kubernetes集群
    Ubuntu18.04 开机自启动(需要 sudo 权限)
    nginx加载vue3 打包后的静态文件
    使用Docker搭建Nextcloud SSL站点
    Docker+Selenium+TestNG+Maven+Jenkins环境搭建
    Windows Server 2016安装AD并开启SSL
    Centos 环境配置内网 Yum 源
  • 原文地址:https://www.cnblogs.com/oceanking/p/2532555.html
Copyright © 2020-2023  润新知