springboot中执行完某些逻辑后,才算bean加载完,applicationContext才加载完毕
核心思想
实现InitializingBean接口,重写afterPropertiesSet方法
范例代码
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.InitializingBean;
import org.springframework.stereotype.Component;
@Slf4j
@Component
public class Demo implements InitializingBean {
@Override
public void afterPropertiesSet() throws Exception {
log.info("开始休眠5min");
Thread.sleep(1000 * 60 * 5);
log.info("休眠5min结束");
}
}
运行证明
[INFO] 2024-05-22 14:40:24.962 com.xxx.jscaffold.handler.Demo:[12][]- 开始休眠5min
[INFO] 2024-05-22 14:45:24.959 com.xxx.jscaffold.handler.Demo:[14][]- 休眠5min结束
[INFO] 2024-05-22 14:45:26.381 p6spy:[60][]- Consume Time:60 ms 2024-05-22 14:45:26
Execute SQL:SELECT 1
[INFO] 2024-05-22 14:45:26.887 com.jdl.jscaffold.MainApplication:[61][]- Started MainApplication in 308.167 seconds (JVM running for 309.04)
使用场景
可以定义一个sercie来实现InitializingBean接口,用于程序启动时加载元数据到内存中,如果没加载完毕,不算springContext成功结束。
原创:做时间的朋友
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 记一次.NET内存居高不下排查解决与启示
2023-05-22 单例