Springboot项目启动成功后可通过五种方式继续执行

 更新时间:2023年12月06日 15:50:12   作者:如风之夏  
本文主要介绍了Springboot项目启动成功后可通过五种方式继续执行,主要包括CommandLineRunner接口,ApplicationRunner接口,ApplicationListener接口,@PostConstruct注解,InitalizingBean接口,感兴趣的可以了解一下
  • 实现CommandLineRunner接口
    项目初始化完毕后,才会调用方法,提供服务
@Component
public class StartRunner implements CommandLineRunner {

    @Override
    public void run(String... args) throws Exception {
        System.out.println("CommandLineRunner====================");
    }
}
  • 实现ApplicationRunner接口
    同 CommandLineRunner。只是传参格式不一样。CommandLineRunner:没有任何限制;ApplicationRunner:key-value
@Component
public class StartRunner implements ApplicationRunner {

    @Override
    public void run(ApplicationArguments args) {
        System.out.println("ApplicationRunner=================");
    }
}
  • 实现ApplicationListener接口
    项目初始化完毕后,才会调用方法,提供服务。注意监听的事件,通常是 ApplicationStartedEvent 或者 ApplicationReadyEvent,其他的事件可能无法注入 bean。
@Component
public class StartListener implements ApplicationListener<ApplicationStartedEvent> {

    @Override
    public void onApplicationEvent(ApplicationStartedEvent event) {
        System.out.println("ApplicationListener================ApplicationStartedEvent");
    }
}

如果监听的是 ApplicationStartedEvent 事件,则 ApplicationListener 一定会在 CommandLineRunner 和 ApplicationRunner 之前执行;
如果监听的是 ApplicationReadyEvent 事件,则 ApplicationListener 一定会在 CommandLineRunner 和 ApplicationRunner 之后执行;
顺序:
默认是 ApplicationRunner 先执行,如果双方指定了@Order 则按照 @Order的大小顺序执行,小的先执行

  • @PostConstruct注解
    在项目初始化过程中,就会调用此方法。如果业务逻辑执行很耗时,可能会导致项目启动失败。
@Component
public class StartInit {

    @PostConstruct
    public void init() {
        System.out.println("@PostConstruct===============================");
    }

}
  • 实现InitalizingBean接口
    项目启动时,调用此方法
@Component
public class StartSet implements InitializingBean {

    @Override
    public void afterPropertiesSet() {
        System.out.println("InitializingBean====================");
    }

}

到此这篇关于Springboot项目启动成功后可通过五种方式继续执行的文章就介绍到这了,更多相关Springboot启动成功后继续执行内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家! 

相关文章

  • 通过实例解析java过滤器和拦截器的区别

    通过实例解析java过滤器和拦截器的区别

    这篇文章主要介绍了通过实例解析java过滤器和拦截器的区别,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-03-03
  • Lombok基本注解之@SneakyThrows的作用

    Lombok基本注解之@SneakyThrows的作用

    @SneakyThrows注解是由lombok为咱们封装的,它能够为咱们的代码生成一个try...catch块,并把异常向上抛出来,下面这篇文章主要给大家介绍了关于Lombok基本注解之@SneakyThrows作用的相关资料,需要的朋友可以参考下
    2022-01-01
  • 日历显示读出输入的年月的java代码

    日历显示读出输入的年月的java代码

    这篇文章主要介绍了日历显示读出输入的年月的java代码,有需要的朋友可以参考一下
    2013-12-12
  • Spring 事件监听机制实现跨模块调用的思路详解

    Spring 事件监听机制实现跨模块调用的思路详解

    之前一个项目,有两个模块,A 模块需要依赖 B 模块,但现在 B 模块有地方需要调用 A 模块的方法,如果直接依赖,又会产生循环依赖问题,最终选择使用 spring 的事件监听来解决该问题,下面给大家介绍Spring 事件监听机制实现跨模块调用的思路,感兴趣的朋友一起看看吧
    2024-05-05
  • 25行Java代码将普通图片转换为字符画图片和文本的实现

    25行Java代码将普通图片转换为字符画图片和文本的实现

    这篇文章主要介绍了25行Java代码将普通图片转换为字符画图片和文本的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-04-04
  • SpringBoot后端上传文件类型检测方式

    SpringBoot后端上传文件类型检测方式

    这篇文章主要介绍了SpringBoot后端上传文件类型检测方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-03-03
  • Idea 2020.2安装MyBatis Log Plugin 不可用的解决方法

    Idea 2020.2安装MyBatis Log Plugin 不可用的解决方法

    小编在使用时发现Idea 2020.2 MyBatis Log Plugin 收费了,这个可以替代用,小编特此把解决方案分享到脚本之家平台供大家参考,感兴趣的朋友一起看看吧
    2020-11-11
  • java nio中的ByteBuffer扩展问题

    java nio中的ByteBuffer扩展问题

    这篇文章主要介绍了java nio中的ByteBuffer扩展问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-08-08
  • 一篇文章带你入门Java多线程

    一篇文章带你入门Java多线程

    这篇文章主要介绍了java多线程编程实例,分享了几则多线程的实例代码,具有一定参考价值,加深多线程编程的理解还是很有帮助的,需要的朋友可以参考下
    2021-08-08
  • JavaWeb学习笔记分享(必看篇)

    JavaWeb学习笔记分享(必看篇)

    下面小编就为大家带来一篇JavaWeb学习笔记分享(必看篇)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2016-06-06

最新评论