SpringBoot中CommandLineRunner?
點(diǎn)擊上方藍(lán)色字體,選擇“標(biāo)星公眾號”
優(yōu)質(zhì)文章,第一時(shí)間送達(dá)
66套java從入門到精通實(shí)戰(zhàn)課程分享
SpringBoot中CommandLineRunner的作用
平常開發(fā)中有可能需要實(shí)現(xiàn)在項(xiàng)目啟動(dòng)后執(zhí)行的功能,SpringBoot提供的一種簡單的實(shí)現(xiàn)方案就是添加一個(gè)model并實(shí)現(xiàn)CommandLineRunner接口,實(shí)現(xiàn)功能的代碼放在實(shí)現(xiàn)的run方法中
也就是項(xiàng)目一啟動(dòng)之后,就立即需要執(zhí)行的動(dòng)作
我們只需要在項(xiàng)目里面簡單的配置,就可以實(shí)現(xiàn)這個(gè)功能。
簡單例子
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("項(xiàng)目已經(jīng)啟動(dòng)");
}
}
如果有多個(gè)類實(shí)現(xiàn)CommandLineRunner接口,如何保證順序
SpringBoot在項(xiàng)目啟動(dòng)后會遍歷所有實(shí)現(xiàn)CommandLineRunner的實(shí)體類并執(zhí)行run方法,如果需要按照一定的順序去執(zhí)行,那么就需要在實(shí)體類上使用一個(gè)@Order注解(或者實(shí)現(xiàn)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("執(zhí)行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("執(zhí)行1");
}
}
控制臺顯示
執(zhí)行1
執(zhí)行2
根據(jù)控制臺結(jié)果可判斷,@Order 注解的執(zhí)行優(yōu)先級是按value值從小到大順序。
@Order 作用
就是項(xiàng)目啟動(dòng)之后,要執(zhí)行的動(dòng)作是比較的多,那么到底先執(zhí)行哪個(gè),那么就可以利用這個(gè)注解限定優(yōu)先級。
版權(quán)聲明:本文為博主原創(chuàng)文章,遵循 CC 4.0 BY-SA 版權(quán)協(xié)議,轉(zhuǎn)載請附上原文出處鏈接和本聲明。
本文鏈接:
https://blog.csdn.net/python113/article/details/109244712
粉絲福利:108本java從入門到大神精選電子書領(lǐng)取
???
?長按上方鋒哥微信二維碼?2 秒 備注「1234」即可獲取資料
感謝點(diǎn)贊支持下哈?
