Java面试题:SpringBean的生命周期

SpringBean的生命周期

BeanDefinition

Spring容器在进行实例化时,会将xml配置的信息封装成BeanDefinition对象

Spring根据BeanDefinition来创建Bean对象

包含很多属性来描述Bean

包括

beanClassName:bean的类名,通过类名进行反射

initMethodName:初始化方法名称

propertyValues:bean的属性值

scope:作用域

lazyInit:是否需要延迟初始化

Bean的生命周期

通过BeanDefinition获取bean定义信息
调用bean的构造函数
随后进行依赖注入
实现Aware接口(进一步对bean进行扩展,包括beanname,beanFactory,applicationContext)

重写setBeanName(),setBeanFactory(),setApplicationContext()得到对应的bean属性

BeanPostProcessor#before(前置后置处理器)
初始化方法(初始化方法+自定义init方法)

添加@PostConstruct注解自定义初始化方法

实现initializingBean接口重写afterPropertiesSet()方法定义初始化方法

BeanPostProcessor#after(后置后置处理器)AOP
销毁bean

添加@PreDestory定义bean的销毁方法

相关推荐
8***Z89几秒前
修改表字段属性,SQL总结
java·数据库·sql
AuroraWanderll4 分钟前
深入理解C++多态(三):多态的原理——虚函数表机制(上)
c语言·开发语言·数据结构·c++·算法·stl
C***u1767 分钟前
Spring Boot 实战篇(四):实现用户登录与注册功能
java·spring boot·后端
lly2024069 分钟前
Python Number(数字)
开发语言
阿沁QWQ9 分钟前
STL库vector模拟实现
开发语言·c++
码界奇点10 分钟前
Java大数据在智能教育个性化学习资源推荐中的冷启动解决方案
java·大数据·学习·动画·推荐算法
未来之窗软件服务10 分钟前
操作系统应用(三十二)python版本选择系统—东方仙盟筑基期
开发语言·python·东方仙盟·操作系统应用
safestar201213 分钟前
Elasticsearch分片设计:从数据分布失衡到集群稳定性实战
java·es
Ustinian_31014 分钟前
【python】图片转PDF工具【附完整源码】
开发语言·python·pdf