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

  • 相关阅读:
    5.抽象工厂模式-abstractfactory
    java-code优化(持续更新)
    4.工厂方法模式-factoryMethod
    3.单例模式-singleton
    2.适配器模式-adapter
    1.外观模式-facade
    Hibernate(七)多对一单向关联映射
    Hibernate(六)一对一双向关联映射
    Hibernate(五)一对一单向关联映射
    Hibernate(四)基本映射
  • 原文地址:https://www.cnblogs.com/heihei1990/p/13899792.html
Copyright © 2011-2022 走看看