SpringBoot
如何理解Springboot
启动run()的过程
注解都用哪些
AOP底层原理
讲讲Springboot的启动流程
主要包括一下步骤:
加载Springboot启动类(通常是带有
@SpringbootApplication)注解的类扫描启动类所在包以及子包,找到所有的
@Component、@Controller、@Service、@Repository等注解的类根据扫描到的类创建BeanDefinition对象,并加入BeanDefinitionRegistry中
对所有的BeanDefinition进行实例化,创建Bean对象
调用所有实现了CommandLineRunner和ApplicationRunner接口的Bean的
run方法启动SpringBoot应用
说说Bean的生命周期
主要包括以下阶段:
实例化:IOC根据Bean的定义创建Bean实例
属性赋值:IOC将Bean的属性赋值
Aware接口回调:如果Bean实现了Aware接口,则IOC将回调Aware接口的方法
BeanPostProcessor前置处理:如果Bean实现了BeanPostProcessor接口,则IOC将调用BeanPostProcessor的postProcessBeforeInitialization方法
初始化:IOC调用Bean的初始化方法,如果Bean实现了InitializingBean接口,则调用afterPropertiesSet方法;如果在配置文件中定义了init-method,则调用配置的初始化方法。
BeanPostProcessor后置处理:如果Bean实现了BeanPostProcessor接口,则IOC将调用BeanPostProcessor的postProcessAfterInitialization方法
使用:Bean可以被应用程序使用
销毁:如果Bean实现了DisposableBean接口,则在容器关闭时,IOC将调用destroy方法;如果在配置文件中定义了destroy-method,则调用配置的销毁方法。
Last updated