spring可以说是java有史以来最为庞大,应用最为广泛的框架,在看源码之前应该先立足于某一点在逐步发散到面。本文主要是整理观看spring源码前/中遇到的问题,以便于读代码更有针对性
spring的IOC和AOP
问题:
- Spring容器中的Bean的生命周期是什么?
- 对应的PostProcessor什么时候执行?有什么作用
- BeanDefinition的架构以及spring的设计思想
- BeanFactory和ApplicationContext的关系是什么?他们的作用是什么?
- ApplicationContext的构造函数都做了什么?
- scan/register做了什么事?
- refresh做了什么事?
- refresh的详细的流程,对照着bean的生命周期看
- AnnotationConfigUtils.registerAnnotationConfigProcssors做什么用的?
- Spring的自动装配策略是什么(byType–>Primary–>Propity–>ByName)具体见临时链接
- ClassPathBeanDefinitionScanner、AnnotatedBeanDefinitionReader的作用 Spring源码-类扫描器-ClassPathBeanDefinitionScanner
- 为什么@Component、@Repository、@Controller、@Service以及JavaEE6的@ManagedBean和@Named注解这些注解能注册到容器中Spring源码-实现自定义注解
- Spring如何实现自定义注解,它是怎么实现的(CommponentScan,inculudFilter)
- Resource到BeanDefiniton的过程相关的问题,从resource–>SimpleMetadataReader–>BeanDefinition(since 2020-01-28)
- SimpleMetadataReader的作用是什么?
- 需要用到的spring-io中的ResourceLoader需要明确是做什么用的
- SimpleMetadataReader构造方法中用到了spring-asm是做什么用的
- Lookup注解干什么用的