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

相关推荐
CHANG_THE_WORLD4 小时前
6.多线程的TCP通信
java·网络·tcp/ip
-银雾鸢尾-4 小时前
C#中的索引器
开发语言·c#
Qlittleboy5 小时前
PHP的接口参数传递的过多,max_input_vars = 5000
开发语言·php
Aurorar0rua5 小时前
CS50 x 2024 Notes Algorithms - 02
c语言·开发语言·学习方法
sun03225 小时前
【笔记】Spring MVC 相关介绍
java·spring·mvc
en.en..5 小时前
冒泡排序与选择排序完整对比解析
开发语言·数据结构·算法·c#·排序算法
兰令水5 小时前
hot100【acm版】【2026.7.18打卡-java版本】
java·开发语言·算法
cui_ruicheng5 小时前
Python从入门到实战(十三):模块、包与环境管理
开发语言·python
就叫飞六吧5 小时前
子页面和dialog案例
开发语言·javascript·ecmascript
CoderYanger5 小时前
A.每日一题:3020. 子集中元素的最大数量
java·程序人生·算法·leetcode·面试·职场和发展·学习方法