前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >SpringBoot如何启动就执行自己定义的逻辑?

SpringBoot如何启动就执行自己定义的逻辑?

原创
作者头像
AI乔治
修改2019-07-15 11:13:35
1.2K0
修改2019-07-15 11:13:35
举报
文章被收录于专栏:JAVA烂猪皮JAVA烂猪皮

在实际项目开发中,我们可能会希望在项目启动后去加载一些资源信息、执行某段特定逻辑等等初始化工作,这时候我们就需要用到SpringBoot提供的开机自启的功能,SpringBoot给我们提供了两个方式:CommandLineRunnerApplicationRunnerCommandLineRunnerApplicationRunner接口是在容器启动成功后的最后一步回调,这两种方法提供的目的是为了满足,在项目启动的时候立刻执行某些方法

接下来给大家讲解一下这两个方式如何使用

一、CommandLineRunner

1、创建SpringBoot项目

如何创建SpringBoot项目这里不做过多介绍

2、建一个自己的事件监听类

实现CommandLineRunner接口

代码语言:javascript
复制
/**
 * @author Gjing
 **/
@Component
public class MyStartRunner implements CommandLineRunner {
    @Override
    public void run(String... args) throws Exception {
        System.out.println("自己定义的第一个启动后事件开始执行。。。。。。。");
    }
}

启动项目

2、定义多个监听类

如果需要多个监听类,我们只需要定义多个就行了,通过@Order注解或者实现Order接口来标明加载顺序

  • 监听类1
代码语言:javascript
复制
/**
 * @author Gjing
 */
@Component
@Order(1)
public class MyStartRunner implements CommandLineRunner {
    @Override
    public void run(String... args) throws Exception {
        System.out.println("自己定义的第一个启动后事件开始执行。。。。。。。");
    }
}
  • 监听类2
代码语言:javascript
复制
/**
 * @author Gjing
 **/
@Component
@Order(2)
public class MyStartRunner2 implements CommandLineRunner {
    @Override
    public void run(String... args) throws Exception {
        System.out.println("自己定义的第二个启动后事件开始执行。。。。。。。");
    }
}

启动项目

二、ApplicationRunner

创建自定义监听类

实现ApplicationRunner接口

代码语言:javascript
复制
/**
 * @author Gjing
 **/
@Component
public class MyApplicationRunner implements ApplicationRunner {
    @Override
    public void run(ApplicationArguments args) throws Exception {
        System.out.println("我自定义的ApplicationRunner事件。。。。。。");
    }
}

启动项目

三、两者的区别

ApplicationRunner中run方法的参数为ApplicationArguments,而CommandLineRunner接口中run方法的参数为String数组。想要更详细地获取命令行参数,那就使用ApplicationRunner接口

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、CommandLineRunner
  • 二、ApplicationRunner
  • 三、两者的区别
相关产品与服务
容器服务
腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档