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

  • 相关阅读:
    docker 删除本地镜像
    hadoop 伪分布环境部署
    docker多镜像+nginx+django环境部署
    docker+django 运行环境部署
    设计数据结构-LRU缓存算法
    设计数据结构-Unionfind并查集算法
    String#intern理解
    java常见API和集合
    链表总结
    二叉树的基础总结
  • 原文地址:https://www.cnblogs.com/heihei1990/p/13899792.html
Copyright © 2020-2023  润新知