insight component-scan TypeFilter

原创 2018年02月08日 17:03:56

通常spring扫描bean只需要配置包名即可,如果工程需要拆分应用分别部署,可以细化扫描的规则即可达到效果。
自带的filter包括:annotaion、assignable、aspectj、regex 或者根据特性的扫描需求实现TypeFilter接口接口

自带的TypeFilter:

  1. annotation 类似于@Component、@Service,根据所加的注解确定是否管理Class。AnnotationTypeFilter
  2. assignable 直接指定的类全名称,包括子类和接口实现类。AssignableTypeFilter
  3. aspectj、regex 各自语法、表达式匹配的类。通配用

TypeFilter工作清单:

  1. ClassPathScanningCandidateComponentProvider 提供了基于base-package扫描的实现,find candidates 就是 filter match 工作的过程
  2. 上述Provider 初始化过程会注册默认的filter 和指定的filter。
  3. 注册默认的filter包括:AnnotationTypeFilter(Component.class),并且尝试兼容ManagedBean、Named
  4. spring scan 的实现类ClassPathBeanDefinitionScanner,继承ClassPathScanningCandidateComponentProvider,实现容器的scan。
  5. RegexPatternTypeFilter 通过Pattern.matcher实现。
  6. AspectJTypeFilter 通过World、org.aspectj.weaver.patterns.TypePattern实现

tips:

  1. 通用模块化设计,细节看设计,好框架啊!
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/tt50335971/article/details/79291633

Spring4.3.x 浅析xml配置的解析过程(8)——解析context命名空间之component-scan标签

概述Spring context命名空间有property-placeholder、property-override、annotation-config、component-scan、load-ti...
  • chyohn
  • chyohn
  • 2017-02-09 12:25:59
  • 986

基于Annotation的零配置方式--AspectJ

复习一下Spring AOP利用注解的形式,配置一个简单的@Before事前通知 首先定义一个切面,注意添加@Aspect之后,Spring不会对该类进行增强处理,定义@Before事前通知,使用@...
  • boloyz
  • boloyz
  • 2012-11-30 10:44:29
  • 4365

Insight context:component-scan 实现class scan

spring 配置component-scan 是怎样实现类的扫描的
  • tt50335971
  • tt50335971
  • 2016-08-15 21:29:18
  • 153

spring注解

注解的使用,首先编写一个注册文件Configure.java,并用@Configuration注解,然后使用注解容器类加载bean即可. @Configuration @ComponentScan(b...
  • u013855332
  • u013855332
  • 2016-07-04 00:54:52
  • 1552

Spring自定义类扫描器

在我们刚开始接触Spring的时候,要定义bean的话需要在xml中编写,比如: id="myBean" class="your.pkg.YourClass"/> 后来发现如果bean比较多,会需...
  • qq_23315711
  • qq_23315711
  • 2017-06-16 10:35:41
  • 974

<context:component-scan>使用说明

在xml配置了这个标签后,spring可以自动去扫描base-pack下面或者子包下面的java文件,如果扫描到有@Component @Controller@Service等这些注解的类,则把这些类...
  • chunqiuwei
  • chunqiuwei
  • 2013-11-14 12:43:12
  • 285596

Spring(16)——使用注解进行bean定义(二)

16.5 过滤器默认情况下,Spring将扫描所有@Component、@Controller、@Service和@Repository标注的类,以及这几个注解所派生出来的注解所标注的类,如之前介绍的...
  • elim168
  • elim168
  • 2017-08-08 08:45:18
  • 2667

Spring组件扫描<context:component-scan/>使用详解

1.如果不想在xml文件中配置bean,我们可以给我们的类加上spring组件注解,只需再配置下spring的扫描器就可以实现bean的自动载入。 2.下面是引用sp...
  • a9529lty
  • a9529lty
  • 2012-12-03 11:48:46
  • 117178

context:component-scan base-package

Element : component-scan Scans the classpath for annotated components that will be auto-registered a...
  • u012246342
  • u012246342
  • 2016-08-19 16:55:21
  • 2158

spring中关于<context:component-scan>的使用说明

通常情况下我们在创建spring项目的时候在xml配置文件中都会配置这个表情,配置完这个标签后,spring就会去自动扫描base-package对应的路径或者该路径的子包下面的java文件,如果扫描...
  • LiuXingSiYe
  • LiuXingSiYe
  • 2016-08-10 15:34:08
  • 19000
收藏助手
不良信息举报
您举报文章:insight component-scan TypeFilter
举报原因:
原因补充:

(最多只允许输入30个字)