springboot架构启动挂接点

如果想在springboot启动过程中完成某些工作,可以有如下挂接点:

1、main函数里

这个是最古老,也是最简单的挂接点。适合做些与 Spring 容器无关的前置操作。

2、实现CommandLineRunner类

@Component

@Order(1) // 执行优先级,1 比 2 先执行

public class MyCommandLineRunner implements CommandLineRunner {

@Override

public void run(String... args) throws Exception {

// 启动时执行的逻辑,比如初始化缓存、加载字典数据

System.out.println("CommandLineRunner 执行,命令行参数:" + String.join(",", args));

}

}

3、实现ApplicationRunner类

@Component

@Order(2)

public class MyApplicationRunner implements ApplicationRunner {

@Override

public void run(ApplicationArguments args) throws Exception {

// 获取命名参数(如启动时传入 --name=test)

System.out.println("命名参数 name 的值:" + args.getOptionValues("name"));

// 获取非命名参数

System.out.println("非命名参数:" + args.getNonOptionArgs());

}

}

4、单个bean的初始化

@Component

public class MyBean {

@PostConstruct

public void init() {

// 当前 Bean 初始化后执行,比如初始化 Bean 内部的属性

System.out.println("Bean 初始化后执行 @PostConstruct");

}

}

  1. ApplicationListener(监听启动事件)

@Component

public class MyApplicationListener implements ApplicationListener<ContextRefreshedEvent> {

// 实现对应接口即可

}

6.@Configuration注解

一般在注解类里实现初始化bean工作,不做业务初始化。

相关推荐
Dawson Zhu7 小时前
工作流与 Agent 的工程选型:从“控制权归属“看 LLM 应用架构
人工智能·语言模型·架构·aigc·agi
nvd118 小时前
深入现代 Web 鉴权架构:网关统一代理 (Forward-Auth) vs 前端持有 JWT 的终极选型与边缘同域实践
前端·架构·状态模式
天空之城--8 小时前
Android行业一周动态:编码趋势与行业资讯汇总
android·性能优化·架构·kotlin·android jetpack
FII工业富联科技服务10 小时前
GPT-6 Astra发布,Agent的竞争开始从“会调用工具”走向“完成完整工作”
大数据·人工智能·gpt·架构·机器人·制造
这个DBA有点耶13 小时前
VLDB 2026核心议题解读:当负载被AI改写,数据库的内核该往哪走?
数据库·架构·aigc
天远API13 小时前
零信任架构实战:基于天远行驶OCR证识别构建自动化智能停车网关
运维·人工智能·架构·自动化
冗量13 小时前
Pi Agent Chord 架构深度剖析
架构·agent·pi agent
好好生活中13 小时前
把“信任”设计进系统:从胖东来的前置服务,看服务型组织的架构思维
架构
m0_5873830014 小时前
外卖CPS系统开发实战:从架构设计到运营落地全指南
java·spring·小程序·架构·需求分析
头茬韭菜14 小时前
第 0 篇:「Mem0 深度分析与文档系列计划」—— 记忆层基础设施的源码级解读路线图
架构·mem0·agent长记忆