您好,登錄后才能下訂單哦!
SpringBoot中CommandLineRunner是怎樣的,很多新手對此不是很清楚,為了幫助大家解決這個難題,下面小編將為大家詳細講解,有這方面需求的人可以來學習下,希望你能有所收獲。
平常開發中有可能需要實現在項目啟動后執行的功能,SpringBoot提供的一種簡單的實現方案就是添加一個model并實現CommandLineRunner接口,實現功能的代碼放在實現的run方法中
也就是項目一啟動之后,就立即需要執行的動作
我們只需要在項目里面簡單的配置,就可以實現這個功能。
package org.springboot.sample.runner;
import org.springframework.boot.CommandLineRunner;
import org.springframework.stereotype.Component;
@Component
public class MyStartupRunner implements CommandLineRunner {
@Override
public void run(String... args) throws Exception {
System.out.println("項目已經啟動");
}
}
SpringBoot在項目啟動后會遍歷所有實現CommandLineRunner的實體類并執行run方法,如果需要按照一定的順序去執行,那么就需要在實體類上使用一個@Order注解(或者實現Order接口)來表明順序
package org.springboot.sample.runner;
import org.springframework.boot.CommandLineRunner;
import org.springframework.core.annotation.Order;
import org.springframework.stereotype.Component;
@Component
@Order(value=2)
public class MyStartupRunner1 implements CommandLineRunner {
@Override
public void run(String... args) throws Exception {
System.out.println("執行2");
}
}
package org.springboot.sample.runner;
import org.springframework.boot.CommandLineRunner;
import org.springframework.core.annotation.Order;
import org.springframework.stereotype.Component;
@Component
@Order(value=1)
public class MyStartupRunner2 implements CommandLineRunner {
@Override
public void run(String... args) throws Exception {
System.out.println("執行1");
}
}
控制臺顯示
執行1
執行2
根據控制臺結果可判斷,@Order 注解的執行優先級是按value值從小到大順序。
就是項目啟動之后,要執行的動作是比較的多,那么到底先執行哪個,那么就可以利用這個注解限定優先級。
看完上述內容是否對您有幫助呢?如果還想對相關知識有進一步的了解或閱讀更多相關文章,請關注億速云行業資訊頻道,感謝您對億速云的支持。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。