Bean生命周期

Bean

生命周期概述演示

bean -创建- 初始化- 销毁
容器管理bean生命周期
我们可以自定义初始化和销毁方法
初始化-对象创建完成并赋值好,初始化(单实例)
销毁- 单实例:容器关闭时,多实例:手动

指定方法

1.指定初始化@Bean(initMethod = “init”, destroyMethod = “destroy”)
2.继承InitializingBean, DisposableBean接口,实现方法,可以定义初始化和销毁逻辑
3.方法上注解@PostConstruct, @PreDestroy
4.BeanPostProcessor [接口],bean后置处理器,bean初始化前后工作
postProcessBeforeInitialization初始化前;postProcessAfterInitialization初始化后

IOC容器启动

创建ioc,AnnotationConfigApplicationContext构造器 --> refresh方法初始化–>finishBeanFactoryInitialization初始化所有单实例bean–>preInstantiateSingletons–>getBean–doGetBean–>doCreateBean–>(populateBean赋值先)initializeBean–>前置处理applyBeanProcessBeforeInitialization+InitMethods执行初始化+后置处理applyBeanPostProcessAfterInitialization

BeanPostProcessor 应用

ApplicationContextAwareProcessor
bean实现ApplicationContextAware 回调setApplicationContext方法,传入IOC容器对象
BeanValidationPostProcessor 校验页面提交值,在初始化前后分别Override方法执行doValidate
InitDestroyAnnotationBeanPostProcessor 处理注解 ,在applyBeanProcessBeforeInitialization里找到方法的注解,如init,调用反射,执行init
AutoWiredAnnotationBeanPostProcessor @Autowired

Aware接口

回调函数,在创建对象的时候调用接口规定的方法注入组件(bean)
例如ApplicationContextAware
setApplicationContext(ApplicationContext applicationContext)传入容器,保存在对象中使用,为对象增加组件
ApplicationContextAwareProcessor处理函数,继承自BeanPostProcessor

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值