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

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

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

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

幕布斯7119047 2023-03-31 10:01:29
例如,我有一些用 注釋的 bean @Foo,我想跟蹤這些 bean,因為我想控制它們初始化時發(fā)生的情況,有沒有辦法注冊一個自定義的 spring beanfactory 來允許我這樣做?如果我有另一個注解@Bar也需要這個特殊的初始化怎么辦?我最初的想法是通知用戶用@Lazy注釋對每個 bean 進行注釋,然后使用 bean 工廠后處理器,我將更改 bean 定義的一些屬性。
查看完整描述

1 回答

?
慕村9548890

TA貢獻1884條經驗 獲得超4個贊

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

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

@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注釋才能工作



查看完整回答
反對 回復 2023-03-31
  • 1 回答
  • 0 關注
  • 126 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號