Springboot在程序启动之前特殊处理

本文介绍如何在SpringBoot应用启动前执行特定任务,通过实现ApplicationRunner或CommandLineRunner接口,可在程序初始化阶段进行预处理,如数据库连接、配置加载等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

我们平时使用springboot都是使用main函数直接启动的,例如

@SpringBootApplication
public class Application {
    public static void main(String[] args) {

        ApplicationContext ctx =  SpringApplication.run(Application.class, args);

    }
}

如果我们想在程序启动之前做一些特殊的处理,springboot为我们提供了两种办法。

一、实现  ApplicationRunner 接口

@SpringBootApplication
public class Application implements ApplicationRunner {
    public static void main(String[] args) {

        ApplicationContext ctx =  SpringApplication.run(Application.class, args);

    }

    @Override
    public void run(ApplicationArguments args) throws Exception {
        System.out.println("程序启动之前做一些其他的事情");
    }
}

我们可以debug测试,在  SpringApplication.run(Application.class, args); 执行完之前,会执行我们实现的run方法。

二、实现 CommandLineRunner 

@SpringBootApplication
public class Application  implements CommandLineRunner {
    public static void main(String[] args) {

        ApplicationContext ctx =  SpringApplication.run(Application.class, args);

    }

    @Override
    public void run(String... args) throws Exception {
        System.out.println("程序启动之前做一些特殊的处理");
    }

}

我们可以发现,这两种方式的效果一样,

不同点是 CommandLineRunner 接口能够访问string数组类型的应用参数。

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值