SpringBoot扩展接口- Bean实例化前后扩展点
常用的扩展接口:
1、ApplicationContextAware:获取应用上下文
2、BeanPostProcessor 接口在对象实例化后, 初始化方法调用前后做前置处理和后置处理操作。
触发时间:
刷新上下文refreshContext()方法中,调用 finishBeanFactoryInitialization(beanFactory) 方法,进行bean的实例化
上下文applicationContext的事件监听器和时间广播器已经初始化完成
内置tomcat已经启动
工厂FactoryBean一般不需要扩展接口
普通bean才需要扩展接口
初始化bean的入口 beanFactory.getBean()方法
1、创建bean实例
2、bena实例缓存起来
3、调用populateBean()会在这里进行@Autowire注解的依赖注入
4、initializeBean()进行bean的初始化
4.1 BeanNameAware、BeanClassLoaderAware、BeanFactoryAware接口方法调用 (实现了这些接口的bean)
4.2 BeanPostProcessor接口的postProcessBeforeInitialization()方法调用
ApplicationContextAwareProcessor 后置处理器初始化前方法中处理下面接口调用
EnvironmentAware、
EmbeddedValueResolverAware、
ResourceLoaderAware、
ApplicationEventPublisherAware、
MessageSourceAware、
ApplicationContextAware接口的方法调用
ServletContextAwareProcessor 处理器处理
ServletContextAware接口调用
4.3 调用bean的初始化方法InitializingBean接口afterPropertiesSet()方法
或者注解指定的 init方法
4.4 BeanPostProcessor接口的 postProcessAfterInitialization()方法调用
作者:海绵般汲取
出处:https://www.cnblogs.com/gne-hwz/
版权:本文版权归作者和博客园共有
转载:欢迎转载,但未经作者同意,必须保留此段声明;必须在文章中给出原文连接;否则必究法律责任
出处:https://www.cnblogs.com/gne-hwz/
版权:本文版权归作者和博客园共有
转载:欢迎转载,但未经作者同意,必须保留此段声明;必须在文章中给出原文连接;否则必究法律责任
分类:
java
标签:
Spring Boot
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架
2018-09-17 国内maven仓库地址资源汇总