spring源码之IOC - 注解 - 容器初始化
条评论为了简化bean的配置,spring提供了注解方式,用来取代xml配置文件。在spring中管理注解的bean定义容器有两个:AnnotationConfigApplicationContext、AnnotationConfigWebApplicationContext,两者的用法以及对注解的处理几乎没有区别。这里以AnnotationConfigApplicationContext为例。
容器初始化
先从AnnotationConfigApplicationContext的初始化看起。该容器会先初始化bean定义读取器和bean定义扫描,后续所有的操作都是基于这两者。在两者初始化完之后,在构造方法中会调用各自的register()或scan(),开始对bean的处理。
其中register()或scan(),是分别对注解处理的两种方式。
- register(),直接将需要注册的bean传入,注册到IOC中
- scan(),通过传入指定包,扫描包下及其子包下的所有类进行处理
1 | public class AnnotationConfigApplicationContext extends GenericApplicationContext implements AnnotationConfigRegistry { |
从上述代码中,可以看到,该容器在启动时会调用register()、scan()方法,而这两个方法为public,也可以由使用者在容器创建之后调用新注册的bean。但是需要注意的是,新注册的bean,必须手动调用refresh(),spring才会对其做后续的处理。
注册指定的bean
扫描指定包bean定义
- 本文链接:https://www.ofcoder.com/2019/11/20/java/spring%E6%BA%90%E7%A0%81%E4%B9%8BIOC%20-%20%E6%B3%A8%E8%A7%A3%20-%20%E5%AE%B9%E5%99%A8%E5%88%9D%E5%A7%8B%E5%8C%96/
- 版权声明:Copyright © 并发笔记 - ofcoder.com. Author by far.
分享