簡體   English   中英

如何使用 Spring 手動自動裝配 bean?

[英]How do I manually autowire a bean with Spring?

我有一個 bean B ,我必須自己創建它(使用new B() )並且它有@Autowire@PostConstruct注釋。

我如何讓 Spring 從我的 bean A處理這些注釋?

相關問題:

Aaron,我相信您的代碼是正確的,但我使用了以下內容:

B bean = new B();
AutowireCapableBeanFactory factory = applicationContext.getAutowireCapableBeanFactory();
factory.autowireBean( bean );
factory.initializeBean( bean, "bean" );

第一個方法將處理@Autowire字段和方法(但不是經典屬性)。 第二種方法將調用后處理( @PostConstruct和任何定義的BeanPostProcessor )。

如果 bean 實現了ApplicationContextAware接口,則可以在 bean 中獲取應用程序上下文。

另一種選擇是讓 spring 容器自動創建一個新 bean(而不是使用 new 關鍵字自己創建一個新實例)。 在需要以編程方式實例化 new 的類中,注入AutowireCapableBeanFactory的實例:

@Autowired
private AutowireCapableBeanFactory beanFactory;

然后:

B yourBean = beanFactory.createBean(B.class);

容器將像往常一樣注入用@Autowired 注釋的實例。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM