首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Spring 源码学习 07:ClassPathBeanDefinitionScanner

前言

AnnotationConfigApplicationContext 构造函数除了初始化一个 ,还有一个 ,下面来一起看看 都有什么逻辑。

1

源码分析

代码如下所示:

其中 默认设置的 true。所以最终会执行下面三部分代码:

registerDefaultFilters();

setEnvironment(environment);

setResourceLoader(resourceLoader);

再来看下 UML :

继承了 ,而上面说的这三个方法,其实都是父类 的方法。

对应的这三个操作就是给它的参数赋值:

registerDefaultFilters

本步骤主要是添加过滤器,对 includeFilters 赋值。注册过滤器 , 、 也会被添加进去。

也会注册添加 JSR-250 的 @ManagedBean 和 JSR-330 的 @Named 注解。

setEnvironment

setResourceLoader

和 赋值操作,基本上如代码所示。

2

总结

这一步主要是初始化类扫描器,在它初始化的时候,会初始化一些需要被扫描的注解,以及资源加载器。

到此,无参构造已经执行完毕。总结一下,这两部分分别是初始化默认的处理器,以及初始化类扫描器,资源加载器。

- -

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20201206A03G9200?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券