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

相关推荐
码不停蹄的玄黓1 分钟前
SpringBoot 自动装配原理
java·spring boot·后端
z落落2 分钟前
C# 数组属性和方法(Clear / Copy / IndexOf / LastIndexOf)
开发语言·javascript·c#
白露与泡影5 分钟前
Java虚拟线程实战:从线程池痛点到性能优化全流程
java·开发语言·性能优化
码上有光5 分钟前
c++模板进阶知识讲解(对模板的进一步的运用与理解)
java·前端·c++·特化·模板进阶·偏特化
IT空门:门主8 分钟前
Java 单例模式详解:7 种实现方式 + volatile 原理 + 反射与序列化问题
java·开发语言·单例模式
Byte Wizard12 分钟前
自定义类型:联合和枚举
c语言·开发语言
SimonKing14 分钟前
别再把业务逻辑写进回调接口了!支付回调的正确打开方式
java·后端·程序员
学代码的真由酱14 分钟前
Java文档搜索引擎-测试报告
java·自动化测试·功能测试·搜索引擎·性能测试·测试报告
布吉岛的石头15 分钟前
Java 程序员第 34 阶段大模型权限与安全设计:接口鉴权与访问控制落地
java·安全·flask
sinat_2554878118 分钟前
HTTP、端口、请求、响应、REST
java·网络·网络协议·http·tomcat·intellij-idea