• springboot启动后自动执行方法


    在实际开发中遇到了一写需求:当项目启动完成后立即执行某些方法用于完成某些应用数据的初始化。查阅文献后找到以下几种实现方式:

    1.实现ApplicationRunner接口

    1.  
      @Component
    2.  
      // 指定其执行顺序,值越小优先级越高
    3.  
      @Order(value = 1)
    4.  
      public class MyApplicationRunner implements ApplicationRunner {
    5.  
       
    6.  
      private static final Logger LOG = LoggerFactory.getLogger(MyApplicationRunner.class);
    7.  
      /**
    8.  
      * 工程启动结束后会立即执行的方法
    9.  
      * @param args
    10.  
      * @throws Exception
    11.  
      */
    12.  
      @Override
    13.  
      public void run(ApplicationArguments args) throws Exception {
    14.  
      LOG.info("MyApplicationRunner execute ................args:{}",args);
    15.  
      }
    16.  
      }

    2.实现CommandLineRunner接口

    1.  
      @Component
    2.  
      //指定其执行顺序,值越小优先级越高
    3.  
      @Order(value = 10)
    4.  
      public class MyCommandLineRunner implements CommandLineRunner {
    5.  
      private static final Logger LOG = LoggerFactory.getLogger(MyCommandLineRunner.class);
    6.  
      /**
    7.  
      * 工程启动结束后会立即执行的方法
    8.  
      * @param args
    9.  
      * @throws Exception
    10.  
      */
    11.  
      @Override
    12.  
      public void run(String... args) throws Exception {
    13.  
      LOG.info("MyCommandLineRunner execute ..... args:{}",args);
    14.  
      }
    15.  
      }

    3.执行效果

    两种方式都是在spring boot启动之后执行的,唯一的区别就是参数不同,执行结果如下所示:

  • 相关阅读:
    vue3+typescript引入外部文件
    vue项目中使用sass
    关于Vue.use()使用详解
    案例:密码框格式提示信息错误
    案例:显示隐藏文本框里面的内容
    案例:循环精灵图案例
    案例:关闭淘宝二维码案例
    案例: 仿京东显示隐藏密码
    案例:根据系统时间显示不同的问候语
    ES6中类和对象的注意问题
  • 原文地址:https://www.cnblogs.com/xiami2046/p/13899792.html
Copyright © 2020-2023  润新知