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

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

在實(shí)例化階段之前/期間檢索 Bean 類(lèi)

在實(shí)例化階段之前/期間檢索 Bean 類(lèi)

RISEBY 2022-12-21 13:58:20
在 Spring 應(yīng)用程序中,可以使用applicationContext.getBeansOfType(Object.class). 這當(dāng)然只有在創(chuàng)建了所有 Beans 之后才有可能。所以,如果我在一個(gè) Bean 的構(gòu)造函數(shù)中調(diào)用這個(gè)方法,我必須很幸運(yùn),成為最后一個(gè)被創(chuàng)建的 Bean,才能訪問(wèn)所有這些 Bean。據(jù)我了解 Spring Beans 的生命周期,在 Bean 初始化之前有一個(gè)創(chuàng)建 BeanDefinitions 的階段。如何在 Bean 的構(gòu)造函數(shù)中檢索所有創(chuàng)建的 BeanDefinitions?我還可以檢索Class那些 BeanDefinitions 的類(lèi)型嗎?BeanDefinition類(lèi)型似乎只提供“此 bean 定義的當(dāng)前 bean 類(lèi)名”?;蛘呤窃跇?gòu)造完所有 Bean 之后獲得這些類(lèi)型的唯一方法(例如@PostConstruct)?
查看完整描述

2 回答

?
翻過(guò)高山走不出你

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

也許這段代碼可以幫助


    for (String name : applicationContext.getBeanFactory().getBeanDefinitionNames()) {

        BeanDefinition beanDefinition = applicationContext.getBeanFactory().getBeanDefinition(name);

        String className = beanDefinition.getBeanClassName();

        Class<?> clazz = Class.forName(className);

    }

循環(huán)讓你得到所有的BeanDefinitions 然后你為每個(gè)加載類(lèi)并做你想做的事?


順便說(shuō)一句,這可能不是使用 Spring 的好方法,但它會(huì)起作用。


查看完整回答
反對(duì) 回復(fù) 2022-12-21
?
慕萊塢森

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

您可以創(chuàng)建最后一個(gè) bean,例如將它放在@Configuration具有最小初始化順序的類(lèi)中,這樣它就是最后一個(gè)帶有 的 bean @Order(Ordered.LOWEST_PRECEDENCE),就是這樣:


@Configuration

@Order(Ordered.LOWEST_PRECEDENCE)

public class Last {


    @Autowired

    ApplicationContext applicationContext;


    @Bean

    public String lastBean() {


        applicationContext.getBeanDefinitionNames();    //retrive all created BeanDefinitions in the constructor of a Bean


        applicationContext.getBeansOfType(Object.class); //retrive the types (as Class) 


        return "lastBean";

    }


}


查看完整回答
反對(duì) 回復(fù) 2022-12-21
  • 2 回答
  • 0 關(guān)注
  • 130 瀏覽
慕課專(zhuān)欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號(hào)

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