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

相关推荐
d***9355 分钟前
Spring Boot 自动配置
java·spring boot·后端
h***67376 分钟前
Spring Boot文件上传
java·spring boot·后端
kyle~6 分钟前
数据结构---堆(Heap)
服务器·开发语言·数据结构·c++
渡我白衣8 分钟前
哈希的暴力美学——std::unordered_map 的底层风暴、扩容黑盒与哈希冲突终极博弈
java·c语言·c++·人工智能·深度学习·算法·哈希算法
信码由缰8 分钟前
Java记录类入门:简化的以数据为中心的Java编程
java
中工钱袋9 分钟前
Java Stream 流详解
java·windows·python
IT界的渣11 分钟前
IDEA Maven打包加速工具 mvnd
java·maven·intellij-idea·mvnd
c***937712 分钟前
Spring Security 官网文档学习
java·学习·spring
x***010617 分钟前
Java框架SpringBoot(一)
java·开发语言·spring boot
T***742519 分钟前
SpringMVC新版本踩坑[已解决]
java