第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何在啟動Spring應(yīng)用程序之前初始化數(shù)據(jù)結(jié)構(gòu)?

如何在啟動Spring應(yīng)用程序之前初始化數(shù)據(jù)結(jié)構(gòu)?

收到一只叮咚 2023-09-27 14:23:18
我有一個用于初始化它的數(shù)據(jù)結(jié)構(gòu),我需要向數(shù)據(jù)庫發(fā)出請求,然后調(diào)用將為數(shù)據(jù)結(jié)構(gòu)準(zhǔn)備數(shù)據(jù)的對象,然后才對其進行初始化。在啟動 spring-mvc 應(yīng)用程序之前我該怎么做?我正在嘗試使用 @PostConstruct 和 @EventListener(ApplicationReadyEvent.class) 等注釋,但它們是隨 spring 應(yīng)用程序啟動的,目前數(shù)據(jù)結(jié)構(gòu)尚未初始化。有代碼示例:public class DataStructure{    Collection data = new Collection();//some kind of collection    @PostConstruct    public void initDS(){        DataFromDataBase data = ...;        SomeObjectThatPrepareData obj = new SomeObjectThatPrepareData(data);        Collection preparedData = obj.prepareData();        preparedData.forEach(DataStructure::addData);    }    private void addData(Data data){ ... }    ...}public class ClassThatUseDataStucture{     private static DataStructure readyData;     static{         readyData = new DataStructure();         readyData.initDS();     }    ...}
查看完整描述

1 回答

?
當(dāng)年話下

TA貢獻1890條經(jīng)驗 獲得超9個贊

如果您想在 Spring boot 應(yīng)用程序啟動時設(shè)置/初始化某些內(nèi)容,您應(yīng)該使用ApplicationRunner或CommandLineRunner。


Spring boot 提供了一個ApplicationRunner帶有回調(diào) run() 方法的接口,可以在實例化 Spring 應(yīng)用程序上下文后在應(yīng)用程序啟動時調(diào)用該方法。


例如


@Component

public class AppStartupRunner implements ApplicationRunner {


? ? @Override

? ? public void run(ApplicationArguments args) throws Exception {

? ? ? ? // Setup or initialization activities

? ? }

}

或者您可以按照 Aniket 在評論中的建議創(chuàng)建 Bean:


@Bean?

ApplicationRunner thisWillRunAutomatically()?

{

? ? return args -> { ... };

}

查看完整回答
反對 回復(fù) 2023-09-27
  • 1 回答
  • 0 關(guān)注
  • 120 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號