Spring Boot 項(xiàng)目啟動自動執(zhí)行方法的兩種實(shí)現(xiàn)方式
實(shí)際應(yīng)用場景:
springboot項(xiàng)目啟動成功后執(zhí)行一段代碼,如系統(tǒng)常量,配置、代碼集等等初始化操作;執(zhí)行多個(gè)方法時(shí),執(zhí)行順序使用Order注解或Order接口來控制。
Springboot給我們提供了兩種方式
第一種實(shí)現(xiàn)ApplicationRunner接口
package org.mundo.demo.core;
import org.springframework.boot.ApplicationArguments;
import org.springframework.boot.ApplicationRunner;
import org.springframework.core.annotation.Order;
import org.springframework.stereotype.Component;
@Component
@Order(2)
public class ApplicationRunnerImpl implements ApplicationRunner {
@Override
public void run(ApplicationArguments args) throws Exception {
System.out.println("通過實(shí)現(xiàn)ApplicationRunner接口,在spring boot項(xiàng)目啟動后執(zhí)行代碼...");
}
}
第二種實(shí)現(xiàn)CommandLineRunner接口
package org.mundo.demo.core;
import org.springframework.boot.CommandLineRunner;
import org.springframework.core.annotation.Order;
import org.springframework.stereotype.Component;
@Component
@Order(1)
public class CommandLineRunnerImpl implements CommandLineRunner {
@Override
public void run(String... args) throws Exception {
System.out.println("通過實(shí)現(xiàn)CommandLineRunner接口,在spring boot項(xiàng)目啟動后執(zhí)行代碼...");
}
}
對比:
相同點(diǎn):這兩種方法提供的目的是為了滿足,在項(xiàng)目啟動的時(shí)候立刻執(zhí)行某些方法,都是在SpringApplication 執(zhí)行之后開始執(zhí)行的。
不同點(diǎn):CommandLineRunner接口可以用來接收字符串?dāng)?shù)組的命令行參數(shù),ApplicationRunner 是使用ApplicationArguments 用來接收參數(shù)的
注意:
1、執(zhí)行順序可以使用注解@Order或者Ordered接口,注解@Order或者接口Ordered的作用是定義Spring IOC容器中Bean的執(zhí)行順序的優(yōu)先級,而不是定義Bean的加載順序,Bean的加載順序不受@Order或Ordered接口的影響;
2、當(dāng)項(xiàng)目中同時(shí)實(shí)現(xiàn)了ApplicationRunner和CommondLineRunner接口時(shí),可使用Order注解或?qū)崿F(xiàn)Ordered接口來指定執(zhí)行順序,值越小,越優(yōu)先執(zhí)行
3、注解有一個(gè)int類型的參數(shù),可以不傳,默認(rèn)是最低優(yōu)先級;
以上就是Spring Boot 項(xiàng)目啟動自動執(zhí)行方法的兩種實(shí)現(xiàn)方式的詳細(xì)內(nèi)容,更多關(guān)于Spring Boot 項(xiàng)目啟動自動執(zhí)行方法的資料請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
使用Java實(shí)現(xiàn)在Excel中添加動態(tài)數(shù)組公式
動態(tài)數(shù)組公式是?Excel?引入的一項(xiàng)重要功能,它允許用戶從單個(gè)單元格中的公式返回多個(gè)結(jié)果值,并將這些值自動填充到與公式單元格相鄰的單元格中,本文主要介紹了如何使用Java實(shí)現(xiàn)在Excel中添加動態(tài)數(shù)組公式,x需要的可以參考下2023-12-12
Spring Boot + Vue 前后端分離開發(fā)之前端網(wǎng)絡(luò)請求封裝與配置
這篇文章主要介紹了Spring Boot + Vue 前后端分離開發(fā)之前端網(wǎng)絡(luò)請求封裝與配置方法,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值 ,需要的朋友可以參考下2019-05-05
IDEA插件開發(fā)注冊菜單之向主菜單注冊菜單項(xiàng)目
這篇文章主要介紹了IDEA插件開發(fā)注冊菜單之向主菜單注冊菜單項(xiàng)目,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-04-04
TOMCAT內(nèi)存溢出及大小調(diào)整的實(shí)現(xiàn)方法
下面小編就為大家?guī)硪黄猅OMCAT內(nèi)存溢出及大小調(diào)整的實(shí)現(xiàn)方法。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2016-05-05
解決springboot中@DynamicUpdate注解無效的問題
這篇文章主要介紹了解決springboot中@DynamicUpdate注解無效的問題,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-07-07
使用spring連接及操作mongodb3.0實(shí)例
這篇文章主要介紹了使用spring連接及操作mongodb3.0實(shí)例,詳細(xì)的介紹了使用spring的情況下,在java中簡單操作mongodb。有興趣的可以了解一下。2016-12-12

