zoukankan      html  css  js  c++  java
  • 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启动之后执行的,唯一的区别就是参数不同,执行结果如下所示:

  • 相关阅读:
    javascript命名空间的简单实现
    javascript变量的作用域
    Python单元测试框架
    opencv中遍历图片数据的两种方法
    hsv 与 hsi 颜色空间
    OpenCV资料
    Linux下查看文件和文件夹大小
    The run destination iPhone 5.0 Simulator is not valid for running the scheme 'MyApp'
    OpenCV函数学习之cvLUT
    Linux中find常见用法示例
  • 原文地址:https://www.cnblogs.com/xiami2046/p/13899792.html
Copyright © 2011-2022 走看看