最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Spring Boot 初始化運行特定方法解析

 更新時間:2019年09月20日 09:40:12   作者:僅此而已-遠方  
這篇文章主要介紹了Spring Boot 初始化運行特定方法解析,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下

Spring Boot提供了兩種 “開機自啟動” 的方式,ApplicationRunner和CommandLineRunner

這兩種方式的目的是為了滿足,在容器啟動時like執(zhí)行某些方法。我們可以通過實現(xiàn)ApplicationRunner或者CommandLineRunner來實現(xiàn),他們都是在SpringAppliaction執(zhí)行之后開始執(zhí)行的。這個特性可以讓我們自定義一些在容器啟動時需要初始化的邏輯

ApplicationRunner接口:

官方doc:

Interface used to indicate that a bean should run when it is contained within a SpringApplication. Multiple ApplicationRunner beans can be defined within the same application context and can be ordered using the Ordered

當該接口包含在SpringApplication中時執(zhí)行。多個ApplicationRunner通過Order直接進行排序:

/**
 * 初始化類
 */
@Order(1) // @Order注解可以改變執(zhí)行順序,越小越先執(zhí)行
@Component
public class MyApplicationRunner1 implements ApplicationRunner {
  /**
   * 會在服務啟動完成后立即執(zhí)行
   */
  @Override
  public void run(ApplicationArguments arg0) throws Exception {
    System.out.println("MyApplicationRunner1----" + arg0);
  }
}
/**
 * 初始化類
 */
@Order(2) 
@Component
public class MyApplicationRunner2 implements ApplicationRunner {
  /**
   * 會在服務啟動完成后立即執(zhí)行
   */
  @Override
  public void run(ApplicationArguments arg0) throws Exception {
    System.out.println("MyApplicationRunner2----" + arg0);
  }
}

容器啟動后的運行結果:

可以看到多個ApplicationRunner執(zhí)行順序是按照Order中的值執(zhí)行的,并且每個的入參都是同一個ApplicationArguments實例(具體原因后面分析)

CommandLineRunner接口:

二者的官方doc基本一樣,區(qū)別在于接收的參數不一樣

/**
 * 初始化類
 */
@Order(1) // @Order注解可以改變執(zhí)行順序,越小越先執(zhí)行
@Component
public class MyCommandLineRunner1 implements CommandLineRunner {
  /**
   * 會在服務啟動完成后立即執(zhí)行
   */
  @Override
  public void run(String... args) throws Exception {
    System.out.println("MyCommandLineRunner1----" + args);
  }
}
/**
 * 初始化類
 */
@Order(2)
@Component
public class MyCommandLineRunner2 implements CommandLineRunner {
  /**
   * 會在服務啟動完成后立即執(zhí)行
   */
  @Override
  public void run(String... args) throws Exception {
    System.out.println("MyCommandLineRunner2----" + args);
  }
}

容器啟動后的運行結果:

可以看到多個CommandLineRunner的執(zhí)行效果跟ApplicationRunner一模一樣

最后看下源碼:

SpringApplication啟動時,會執(zhí)行其run方法中的afterRefresh方法:

在afterRefresh中可以看到這兩個接口被執(zhí)行,并且每個ApplicationRunner或CommandLineRunner實例都是用的同一個入參:

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關文章

  • Spring?myBatis數據庫連接異常問題及解決

    Spring?myBatis數據庫連接異常問題及解決

    這篇文章主要介紹了Spring?myBatis數據庫連接異常問題及解決,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-06-06
  • Java中static變量作用和用法詳解

    Java中static變量作用和用法詳解

    Java 中被 static 修飾的成員稱為靜態(tài)成員或類成員。它屬于整個類所有,而不是某個對象所有,即被類的所有對象所共享。靜態(tài)成員可以使用類名直接訪問,也可以使用對象名進行訪問.下面我們來詳細了解一下吧
    2019-06-06
  • 聊聊Spring——AOP詳解(AOP概覽)

    聊聊Spring——AOP詳解(AOP概覽)

    這篇文章主要介紹了Spring——AOP詳解(AOP概覽),具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-08-08
  • Java中MyBatis傳入參數parameterType問題

    Java中MyBatis傳入參數parameterType問題

    這篇文章主要介紹了Java中MyBatis傳入參數parameterType問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-12-12
  • Mybatis?MappedStatement類核心原理詳解

    Mybatis?MappedStatement類核心原理詳解

    這篇文章主要介紹了Mybatis?MappedStatement類,mybatis的mapper文件最終會被解析器,解析成MappedStatement,其中insert|update|delete|select每一個標簽分別對應一個MappedStatement
    2022-11-11
  • maven的5種打包方式小結

    maven的5種打包方式小結

    本文主要介紹了maven的5種打包方式小結,主要是幾種插件打包,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2024-06-06
  • 詳解用maven搭建springboot環(huán)境的方法

    詳解用maven搭建springboot環(huán)境的方法

    本篇文章主要介紹了詳解用maven搭建springboot環(huán)境的方法,這里整理了詳細的代碼,非常具有實用價值,有需要的小伙伴可以參考下
    2017-08-08
  • Java實現(xiàn)samza轉換成flink

    Java實現(xiàn)samza轉換成flink

    將Apache Samza作業(yè)遷移到Apache Flink作業(yè)是一個復雜的任務,因為這兩個流處理框架有不同的API和架構,本文我們就來看看如何使用Java實現(xiàn)samza轉換成flink吧
    2024-11-11
  • Java中的自動拆裝箱、基本類型的轉換、包裝類的緩存詳解

    Java中的自動拆裝箱、基本類型的轉換、包裝類的緩存詳解

    文章詳細介紹了Java中數據類型的拆裝箱、自動拆箱和裝箱,以及包裝類的緩存機制,包括基本數據類型的容量大小、轉換規(guī)則和自動類型轉換等
    2024-12-12
  • 利用SpringMVC和Ajax實現(xiàn)文件上傳功能

    利用SpringMVC和Ajax實現(xiàn)文件上傳功能

    這篇文章主要為大家詳細介紹了利用SpringMVC和Ajax實現(xiàn)文件上傳功能,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-08-08

最新評論

忻州市| 榕江县| 鄂伦春自治旗| 安多县| 芮城县| 建阳市| 松滋市| 新疆| 通许县| 财经| 福鼎市| 鹤岗市| 长春市| 延川县| 上思县| 廉江市| 民勤县| 剑川县| 定结县| 丹凤县| 土默特右旗| 兴山县| 通辽市| 镇坪县| 黄龙县| 安远县| 丹东市| 彭山县| 松溪县| 临颍县| 鸡西市| 博兴县| 呼伦贝尔市| 宣汉县| 朝阳县| 温泉县| 海南省| 肇庆市| 晋江市| 喀喇| 石渠县|