主要观点总结
本文总结了Spring框架中可扩展的接口及其使用场景,包括Spring容器刷新过程、Bean生命周期等。
关键观点总结
关键观点1: Spring框架中的扩展接口
Spring框架提供了许多扩展接口,允许开发者在Spring容器不同阶段插入自定义逻辑。
关键观点2: ApplicationContextInitializer
在容器刷新之前初始化ConfigurableApplicationContext的回调接口,可以在容器刷新之前调用此类的initialize方法。
关键观点3: BeanDefinitionRegistryPostProcessor
在读取项目中的beanDefinition之后执行,提供一个补充的扩展点,可以动态注册自己的beanDefinition。
关键观点4: BeanFactoryPostProcessor
在读取beanDefinition信息之后、实例化bean之前,用户可以通过实现这个扩展接口来自行处理一些事情。
关键观点5: InstantiationAwareBeanPostProcessor
该接口继承了BeanPostProcess接口,扩展点主要在bean生命周期的两大阶段:实例化阶段和初始化阶段。
关键观点6: SmartInstantiationAwareBeanPostProcessor
包含预测Bean类型、确定构造函数、提前暴露回调方法等触发点。
关键观点7: BeanFactoryAware
在bean实例化之后,注入属性之前触发,可以拿到BeanFactory这个属性。
关键观点8: ApplicationContextAwareProcessor
用于执行各种驱动接口,在bean实例化之后,属性填充之后,通过执行扩展接口来获取对应容器的变量。
关键观点9: BeanNameAware
在bean的初始化之前拿到spring容器中注册的beanName,可以用来自行修改这个beanName的值。
关键观点10: @PostConstruct
一个标注,用于在bean的初始化阶段,标注的方法进行先调用。
关键观点11: InitializingBean
提供初始化方法的方式,在初始化bean的时候都会执行该方法。
关键观点12: FactoryBean
通过实现该接口定制实例化Bean的逻辑,隐藏实例化一些复杂bean的细节。
关键观点13: SmartInitializingSingleton
在所有单例对象(非懒加载对象)初始化完成之后调用的回调接口。
关键观点14: CommandLineRunner
在项目启动完毕后自动执行的方法,用于进行启动项目之后的业务预处理。
关键观点15: DisposableBean
当对象销毁时自动执行的方法,如运行applicationContext.registerShutdownHook时触发。
关键观点16: ApplicationListener
监听某个事件的event,可以在业务方法执行过程中自定义业务事件。
文章预览
👉 这是一个或许对你有用 的社群 🐱 一对一交流/面试小册/简历优化/求职解惑,欢迎加入 「 芋道快速开发平台 」 知识星球。 下面是星球提供的部分资料: 《项目实战(视频)》 :从书中学,往事上 “练 ” 《互联网高频面试题》 :面朝简历学习,春暖花开 《架构 x 系统设计》 :摧枯拉朽,掌控面试高频场景题 《精进 Java 学习指南》 :系统学习,互联网主流技术栈 《必读 Java 源码专栏》 :知其然,知其所以然 👉 这是一个或许对你有用的开源项目 国产 Star 破 10w+ 的开源项目,前端包括管理后台 + 微信小程序,后端支持单体和微服务架构。 功能涵盖 RBAC 权限、SaaS 多租户、数据权限、商城、支付、工作流、大屏报表、微信公众号、CRM 等等功能: Boot 仓库:https://gitee.com/zhijiantianya/ruoyi-vue-pro Cloud 仓库:https://gitee.com/zhijiantianya/yudao-cloud
………………………………