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

為了賬號(hào)安全,請及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

將初始化代碼添加到 Spring Boot 應(yīng)用程序的正確方法是什么?

將初始化代碼添加到 Spring Boot 應(yīng)用程序的正確方法是什么?

慕少森 2023-11-10 16:54:28
TLDR:我希望我的 Spring Boot 應(yīng)用程序在啟動(dòng)時(shí)運(yùn)行一些初始化代碼。該代碼需要訪問 Spring bean 和值。我正在編寫一個(gè) Spring Boot 應(yīng)用程序,它將同時(shí)使用隊(duì)列中的多條消息。為了做到這一點(diǎn),它需要實(shí)例化多個(gè)消費(fèi)者對象。Spring是否有一個(gè)好方法來實(shí)例化可配置數(shù)量的同一類實(shí)例?我必須使用的隊(duì)列客戶端充當(dāng)線程池。它為我提供的每個(gè)消費(fèi)者對象創(chuàng)建一個(gè)線程。消費(fèi)者對象一次只能接收一條消息,并且它們必須完全處理并確認(rèn)該消息才能接收另一條消息。消費(fèi)者不是線程安全的,所以我不能只使用單例實(shí)例。我考慮了下面的方法,但我覺得不合適。這似乎是對注釋的濫用,@Component因?yàn)镮nitializer實(shí)例在構(gòu)造后并未使用。有什么更好的方法呢?@Componentpublic class Initializer {    public Initializer(ConsumerRegistry registry, @Value("${consumerCount}") int consumerCount) {        for (int i = 0; i < consumerCount; i++) {            // Each registered consumer results in a thread that consumes messages.            // Incoming messages will be delivered to any consumer thread that's not busy.            registry.registerConsumer(new Consumer());        }    }}
查看完整描述

1 回答

?
茅侃侃

TA貢獻(xiàn)1842條經(jīng)驗(yàn) 獲得超21個(gè)贊

一個(gè)ApplicationListener會(huì)滿足你的需要。它會(huì)收到有關(guān)注冊事件的通知,例如當(dāng) ApplicationContext 準(zhǔn)備就緒時(shí)。您將可以完全訪問所有 Bean 和注入。


@Component

public class StartupApplicationListener implements ApplicationListener<ApplicationReadyEvent> {


    @Inject

    private ConsumerRegistry registry;


    @Inject

    @Value("${consumerCount}")

    private int consumerCount;


    @Override

    public void onApplicationEvent(ApplicationReadyEvent event) {

        //do your logic

        for (int i = 0; i < consumerCount; i++) {

            // Each registered consumer results in a thread that consumes messages.

            // Incoming messages will be delivered to any consumer thread that's not busy.

            registry.registerConsumer(new Consumer());

        }

    }

}


查看完整回答
反對 回復(fù) 2023-11-10
  • 1 回答
  • 0 關(guān)注
  • 127 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號(hào)

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