從零搭建本身的SpringBoot後臺框架(十八)

Hello你們好,本章咱們添加項目啓動時初始化資源功能 。有問題能夠聯繫我mr_beany@163.com。另求各路大神指點,感謝

在咱們實際工做中,總會遇到這樣需求,在項目啓動的時候須要作一些初始化的操做,好比讀取配置文件信息,數據庫鏈接,清除緩存信息等。在Spring Boot中給咱們提供了兩個接口來幫助咱們實現這樣的需求。這兩個接口就是咱們今天要講的CommandLineRunnerApplicationRunner,他們的執行時機爲容器啓動完成的時候。
git

一:共同點和區別

共同點:其一執行時機都是在容器啓動完成的時候進行執行;其二這兩個接口中都有一個run()方法;  github

不一樣點:ApplicationRunner中run方法的參數爲ApplicationArguments,而CommandLineRunner接口中run方法的參數爲String數組。spring

二:使用ApplicationRunner來完成需求

建立core→startuprunner→StartupRunner1數據庫

package com.example.demo.core.startuprunner;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.boot.ApplicationArguments;
import org.springframework.boot.ApplicationRunner;
import org.springframework.core.annotation.Order;
import org.springframework.stereotype.Component;

@Component
@Order(value = 1)
public class StartupRunner1 implements ApplicationRunner {

    private static final Logger logger = LoggerFactory.getLogger(StartupRunner1.class);

    @Override
    public void run(ApplicationArguments var1) throws Exception{
        logger.info("服務器啓動成功!<<<<使用ApplicationRunner接口");
    }
}複製代碼

注意:須要添加@Component,否則SpringBoot掃描不到這個類,不會執行。 數組

啓動服務器,咱們能夠看見緩存


三:使用CommandLineRunner來完成需求

建立core→startuprunner→StartupRunner2
bash

package com.example.demo.core.startuprunner;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.boot.CommandLineRunner;
import org.springframework.core.annotation.Order;
import org.springframework.stereotype.Component;

@Component
@Order(value = -1)
public class StartupRunner2 implements CommandLineRunner {

    private static final Logger logger = LoggerFactory.getLogger(StartupRunner2.class);

    @Override
    public void run(String... args) throws Exception{
        logger.info("服務器啓動成功!<<<<使用CommandLineRunner接口");
    }
}
複製代碼


咱們能夠看見已經輸出成功,而且CommandLineRunner  在  ApplicationRunner  先執行服務器

四:使用Order註解修改執行順序

若是有多個實現類,而咱們須要按照必定的順序執行的話,那應該怎麼辦ide

解決方案:在實現類上加上@Order註解指定執行的順序spa

須要注意:數字越小,優先級越高,也就是@Order(1)註解的類會在@Order(2)註解的類以前執行。

項目地址

碼雲地址: gitee.com/beany/mySpr…

GitHub地址: github.com/MyBeany/myS…

寫文章不易,如對您有幫助,請幫忙點下star

結尾

添加項目啓動時初始化資源功能已完成,後續功能接下來陸續更新,有問題能夠聯繫我mr_beany@163.com。另求各路大神指點,感謝你們。

相關文章
相關標籤/搜索