关于Spring中几种常见接口执行顺序比较

server/2024/9/25 13:24:27/

执行顺序:

静态代码块 > 构造方法 > BeanFactoryAware > ApplicationContextAware > @PostConstruct > InitializingBean > InstantiationAwareBeanPostProcessor > BeanPostProcessor > ApplicationRunner

/*** 执行顺序:* 静态代码块 > 构造方法 > BeanFactoryAware > ApplicationContextAware > @PostConstruct > InitializingBean > InstantiationAwareBeanPostProcessor > BeanPostProcessor > ApplicationRunner* */
@Component
public class BeanPostProcessorTest implements BeanPostProcessor, InitializingBean, BeanFactoryAware, ApplicationContextAware, InstantiationAwareBeanPostProcessor, ApplicationRunner {static Integer count = 1;public BeanPostProcessorTest(){System.out.println(count++ + "构造函数初始化...");}static {System.out.println(count++ + "静态代码块...");}@PostConstructpublic void init(){System.out.println(count++ + "PostConstruct...");}@Overridepublic Object postProcessBeforeInstantiation(Class<?> beanClass, String beanName) throws BeansException {System.out.println(count++ + "InstantiationAwareBeanPostProcessor-> postProcessBeforeInstantiation...");return InstantiationAwareBeanPostProcessor.super.postProcessBeforeInstantiation(beanClass, beanName);}@Overridepublic boolean postProcessAfterInstantiation(Object bean, String beanName) throws BeansException {System.out.println(count++ + "InstantiationAwareBeanPostProcessor-> postProcessAfterInstantiation...");return InstantiationAwareBeanPostProcessor.super.postProcessAfterInstantiation(bean, beanName);}@Overridepublic Object postProcessBeforeInitialization(Object bean, String beanName) {// 在 Bean 初始化之前添加逻辑System.out.println(count++ + "BeanPostProcessor-> postProcessBeforeInitialization...");return bean; // 返回原始或修改后的 Bean}@Overridepublic Object postProcessAfterInitialization(Object bean, String beanName) {System.out.println(count++ + "BeanPostProcessor-> postProcessAfterInitialization...");// 在 Bean 初始化之后添加逻辑return bean; // 返回原始或修改后的 Bean}@Overridepublic void setBeanFactory(BeanFactory beanFactory) throws BeansException {System.out.println(count++ + "BeanFactoryAware-> setBeanFactory...");}@Overridepublic void afterPropertiesSet() throws Exception {System.out.println(count++ + "InitializingBean-> afterPropertiesSet...");}@Overridepublic void setApplicationContext(ApplicationContext applicationContext) throws BeansException {System.out.println(count++ + "ApplicationContext-> setApplicationContext...");}@Overridepublic void run(ApplicationArguments args) throws Exception {System.out.println(count++ + "ApplicationRunner-> run...");}
}


http://www.ppmy.cn/server/121833.html

相关文章

聊一聊软件系统性能测试的重要性

目录 性能测试的分类 为什么要进行性能测试呢&#xff1f; 性能测试曲线对比参数 虚拟用户数 vs 时间: 响应时间 vs 虚拟用户数: 吞吐量 vs 虚拟用户数: 错误率 vs 虚拟用户数: 资源使用情况 vs 时间: 组合视图 上图曲线图关键点介绍 性能测试的重要性主要体现在以下…

828 华为云征文|华为 Flexus 云服务器打造 Laverna 在线笔记应用

一、引言 在当今数字化时代&#xff0c;高效的笔记管理工具对于学习、工作和生活都至关重要。Laverna 作为一款功能强大的开源在线笔记应用&#xff0c;提供了 Markdown 编辑、加密支持等特性&#xff0c;是替代 Evernote 的绝佳选择。在 2024 年 9 月 14 日这个充满创新的日子…

react jsx

语法介绍&#xff1a; react开发中常用的jsx语法&#xff0c;简单来说就是在javascriptxml jsx。 如何使用 react中常用jsx语法&#xff0c;其中的主要注意两点&#xff0c;一个是绑定数据&#xff0c;一个是class的展示。 class与平常的写法不同&#xff0c;需要使用class…

专为汽车功能应用打造的 MLX90376GGO、MLX90377GGO、MLX90377GDC-ADB-280 Triaxis®磁位置传感器 IC

一、MLX90376 Triaxis堆叠式高性能位置传感器芯片&#xff08;模拟/PWM/SENT/SPC&#xff09; MLX90376GGO-ABA-600 MLX90376GGO-ABA-630 MLX90376GGO-ABA-680 MLX90376是一款磁性绝对位置传感器芯片&#xff0c;适用于要求具备抗杂散磁场干扰性能的360旋转汽车应用。它提供…

【Python篇】深入机器学习核心:XGBoost 从入门到实战

文章目录 XGBoost 完整学习指南&#xff1a;从零开始掌握梯度提升1. 前言2. 什么是XGBoost&#xff1f;2.1 梯度提升简介 3. 安装 XGBoost4. 数据准备4.1 加载数据4.2 数据集划分 5. XGBoost 基础操作5.1 转换为 DMatrix 格式5.2 设置参数5.3 模型训练5.4 预测 6. 模型评估7. 超…

WebRTC关键技术及应用场景:EasyCVR视频汇聚平台高效低延迟视频监控解决方案

众所周知&#xff0c;WebRTC是一项开源的实时通信技术&#xff0c;它通过集成音频、视频和数据传输到Web浏览器中&#xff0c;使得实时通信变得简单且无需任何插件或第三方软件。WebRTC不仅是一个API&#xff0c;也是一系列关键技术和协议的集合&#xff0c;它的出现改变了传统…

C#开发者的新选择:使用ImageSharp进行图像处理

在.NET生态系统中&#xff0c;ImageSharp是一个功能强大、跨平台的图像处理库&#xff0c;它为开发者提供了丰富的API来处理图像。与传统的System.Drawing不同&#xff0c;ImageSharp不需要依赖Windows GDI&#xff0c;因此可以在Linux和macOS等非Windows平台上运行。本文将介绍…

充电桩项目:前端实现

上次基于VueElement plus实现了充电桩项目后台管理系统的基本架子。 后端管理 员工管理 这次&#xff0c;又把用户端的基本架子搭建完毕&#xff1a;VueVant 首页 个人中心 充值 选择充值方式 优惠券中心 已过期优惠券 用户登录 用户注册 慢慢项目就有点样子了&#xff0c;代码…