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

相关推荐
哥谭居民00012 分钟前
需求分析,领域划分到选择套用业务模式到转化落地,两个基本案例
java·大数据·需求分析
Tao____7 分钟前
适合中小型项目的物联网平台
java·物联网·mqtt·开源·iot
小马爱打代码8 分钟前
Spring AI:多模态 AI 大模型
java·人工智能·spring
lly20240610 分钟前
并查集快速查找
开发语言
李贺梖梖13 分钟前
day07 方法、面向对象1
java
繁星蓝雨14 分钟前
我与C++的故事(杂谈)
开发语言·c++
除了代码啥也不会16 分钟前
Java基于SSE流式输出实战
java·开发语言·交互
虹科网络安全18 分钟前
艾体宝干货 | Redis Java 开发系列#2 数据结构
java·数据结构·redis
Jacob程序员19 分钟前
欧几里得距离算法-相似度
开发语言·python·算法
sg_knight20 分钟前
SSE 技术实现前后端实时数据同步
java·前端·spring boot·spring·web·sse·数据同步