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

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

使用自定義注釋注釋的 bean 的自定義初始化

使用自定義注釋注釋的 bean 的自定義初始化

幕布斯7119047 2023-03-31 10:01:29
例如,我有一些用 注釋的 bean @Foo,我想跟蹤這些 bean,因?yàn)槲蚁肟刂扑鼈兂跏蓟瘯r(shí)發(fā)生的情況,有沒有辦法注冊(cè)一個(gè)自定義的 spring beanfactory 來允許我這樣做?如果我有另一個(gè)注解@Bar也需要這個(gè)特殊的初始化怎么辦?我最初的想法是通知用戶用@Lazy注釋對(duì)每個(gè) bean 進(jìn)行注釋,然后使用 bean 工廠后處理器,我將更改 bean 定義的一些屬性。
查看完整描述

1 回答

?
慕村9548890

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

解決方案是實(shí)現(xiàn)BeanFactoryPostProcessor接口。這使我們能夠在任何 bean 被實(shí)例化之前訪問,因此允許我們更改范圍之類的東西,或者使 bean 延遲初始化,甚至更改 bean 的構(gòu)造函數(shù)參數(shù)!BeanDefinition

如果您的 spring 應(yīng)用程序是手動(dòng)啟動(dòng)的,即通過創(chuàng)建一個(gè)SpringApplicationBuilder,那么您甚至可以將此類的實(shí)例傳遞給構(gòu)建器的構(gòu)造函數(shù),一旦應(yīng)用程序啟動(dòng),它就會(huì)被使用。

@Component

public class FooBarBeanFactoryPostProcessor implements BeanFactoryPostProcessor {

? ? @Override

? ? public void postProcessBeanFactory(@NonNull ConfigurableListableBeanFactory beanFactory) throws BeansException {

? ? ? ? /*

? ? ? ? String[] fooBeans = beanFactory.getBeanNamesForAnnotation(Foo.class);

? ? ? ? BeanDefinition bean = beanFactory.getBeanDefinition(...);


? ? ? ? /* do your processing here ... */

? ? }

}

需要ps@Component注釋才能工作



查看完整回答
反對(duì) 回復(fù) 2023-03-31
  • 1 回答
  • 0 關(guān)注
  • 115 瀏覽

添加回答

舉報(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)