美文网首页SpringBoot精选JavaSpringboot核心技术
SpringBoot如何启动就执行自己定义的一些功能?

SpringBoot如何启动就执行自己定义的一些功能?

作者: 阿靖哦 | 来源:发表于2019-07-10 15:23 被阅读8次

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

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

    一、CommandLineRunner

    1、创建SpringBoot项目

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

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

    实现CommandLineRunner接口

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

    启动项目

    1.jpg

    2、定义多个监听类

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

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

    启动项目

    2.jpg

    二、ApplicationRunner

    创建自定义监听类

    实现ApplicationRunner接口

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

    启动项目

    3.jpg

    三、两者的区别

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


    本文到此结束,感谢大家阅读

    相关文章

      网友评论

        本文标题:SpringBoot如何启动就执行自己定义的一些功能?

        本文链接:https://www.haomeiwen.com/subject/vcyhkctx.html