insight component-scan TypeFilter

通常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
文章标签: spring typefilter
个人分类: 读书笔记
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

不良信息举报

insight component-scan TypeFilter

最多只允许输入30个字

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭