亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》
  • 首頁 > 
  • 教程 > 
  • 開發技術 > 
  • SpringBoot在項目啟動之后執行自定義方法的兩種方式分別是什么

SpringBoot在項目啟動之后執行自定義方法的兩種方式分別是什么

發布時間:2021-09-24 16:08:15 來源:億速云 閱讀:143 作者:柒染 欄目:開發技術

SpringBoot在項目啟動之后執行自定義方法的兩種方式分別是什么,很多新手對此不是很清楚,為了幫助大家解決這個難題,下面小編將為大家詳細講解,有這方面需求的人可以來學習下,希望你能有所收獲。

    SpringBoot 項目啟動之后執行自定義方法的兩種方式

    在測試配置中心的配置時,想在項目啟動成功之后打印配置項,然后需要執行自定義的類

    一般項目中也會在這個地方進行初始化數據的一些操作

    方式一 實現 CommandLineRunner 接口

    自定義類并實現 CommandLineRunner 接口,實現run()方法,需要執行的語句就放在 run() 方法中

    例:

    @Component
    @Order(1)  // 控制類執行的順序越小越靠前
    public class StartInitializer implements CommandLineRunner {
        @Override
        public void run(String... args) throws Exception {
            System.out.println("項目啟動,執行 CommandLineRunner 實現類的方法");
        }
    }

    方式二 實現 ApplicationRunner 接口

    自定義類并實現 ApplicationRunner 接口,實現run()方法,需要執行的語句就放在 run() 方法中

    例:

    @Component
    @Order(2) // 控制類執行的順序越小越靠前
    public class AppInitializer implements ApplicationRunner {
        @Override
        public void run(ApplicationArguments args) throws Exception {
            System.out.println("項目啟動,執行 ApplicationRunner 實現類的方法");
        }
    }

    二者區別

    區別在于實現方法 run() 中的參數類型不一樣

    實現 ApplicationRunner 接口的 run() 方法參數類型為: ApplicationArguments

    實現 CommandLineRunner 接口的 run() 方法參數類型為: String...

    實現效果

    SpringBoot在項目啟動之后執行自定義方法的兩種方式分別是什么

    Springboot 項目啟動后執行某些自定義代碼

    Springboot給我們提供了兩種“開機啟動”某些方法的方式:ApplicationRunner和CommandLineRunner。

    這兩種方法提供的目的是為了滿足,在項目啟動的時候立刻執行某些方法。我們可以通過實現ApplicationRunner和CommandLineRunner,來實現,他們都是在SpringApplication 執行之后開始執行的。

    CommandLineRunner接口可以用來接收字符串數組的命令行參數,ApplicationRunner 是使用ApplicationArguments 用來接收參數的

    代碼示例

    @Component//被spring容器管理
    @Order(1)//如果多個自定義ApplicationRunner,用來標明執行順序
    public class MyApplicationRunner implements ApplicationRunner {
        @Override
        public void run(ApplicationArguments applicationArguments) throws Exception {
            System.out.println("-------------->" + "項目啟動,now=" + new Date());
            myTimer();
        }
        public static void myTimer(){
            Timer timer = new Timer();
            timer.schedule(new TimerTask() {
                @Override
                public void run() {
                    System.out.println("------定時任務--------");
                }
            }, 0, 1000);
        }
    }

    執行結果

    2018-02-08 14:10:16.490  INFO 10236 --- [           main] s.b.c.e.t.TomcatEmbeddedServletContainer : Tomcat started on port(s): 8081 (http)
    -------------->項目啟動,now=Thu Feb 08 14:10:16 CST 2018
    ------定時任務--------
    2018-02-08 14:10:16.497  INFO 10236 --- [           main] com.mlxs.springboot01.web.MainApp        : Started MainApp in 5.595 seconds (JVM running for 6.334)
    ------定時任務--------
    ------定時任務--------
    ------定時任務--------
    ------定時任務--------
    ------定時任務--------
    ------定時任務--------

    看完上述內容是否對您有幫助呢?如果還想對相關知識有進一步的了解或閱讀更多相關文章,請關注億速云行業資訊頻道,感謝您對億速云的支持。

    向AI問一下細節

    免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

    AI

    锦屏县| 明星| 陵川县| 炎陵县| 仁布县| 神木县| 乌什县| 凤冈县| 莱西市| 乌兰察布市| 潜江市| 宁安市| 石嘴山市| 龙山县| 绥芬河市| 裕民县| 双城市| 桑植县| 舟曲县| 游戏| 讷河市| 密山市| 宁海县| 乐业县| 靖州| 依安县| 海原县| 香格里拉县| 宣武区| 定边县| 莲花县| 龙江县| 东方市| 射洪县| 即墨市| 高平市| 赤水市| 根河市| 静海县| 北流市| 尼勒克县|