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的销毁方法

相关推荐
石山代码2 分钟前
如何在 C++ 中实现多态?
开发语言·c++
阿方.9184 分钟前
C++ std::function 超全精讲 | 原理语法、适配对象、递归实现、回调场景、面试考点、易错坑点
开发语言·c++·bind·function
weixin_468466857 分钟前
Markitdown 文档解析快速入门指南
开发语言·python·自动化·编程
我命由我123458 分钟前
SEO 与 GEO 极简理解
java·linux·运维·开发语言·学习·算法·运维开发
金銀銅鐵10 分钟前
[Java] 自己写程序,来解析方法的 descriptor
java·后端
Yang961115 分钟前
0.5 米超短盲区!鼎讯信通 GO-50PRO 光时域反射仪科普
开发语言·后端·golang
红辣椒...17 分钟前
codex+第三方模型
java·服务器·前端
不会C语言的男孩19 分钟前
C++ Primer Plus 第12章:类和动态内存分配
开发语言·c++
一个做软件开发的牛马28 分钟前
Java 继承与多态:从"是什么"到"能做什么"的设计思维
java·后端
不懂的浪漫37 分钟前
05|Netty ByteBuf 源码分析:为什么不用 Java ByteBuffer
java·netty