簡體   English   中英

Spring找不到由注解生成的bean

[英]Spring does not find beans generated by annotations

我想從我的spring上下文中檢索屬於某個類(或子類)的所有bean。 但這僅檢測到xml專門定義的bean。 此處未檢測到由注釋定義的Bean,例如@Service (盡管在應用程序內部可以完美地檢測,初始化和自動連接它們)。

GenericXmlApplicationContext ctx = new GenericXmlApplicationContext("*-context.xml");
Map<String, DataUpdater> beans = ctx.getBeansOfType(MyClass.class, true, true);
// why are beans missing?

抱歉,出現一些愚蠢的錯誤...我沒有正確加載我的xml文件,但是由於某些后台進程實例化的bean正在使用正確的文件創建並行xml上下文。

我看到過類似的問題,但我從未使getBeansOfType()正常工作。 我的解決方案:

@Autowired
public void setMyClasses( List<MyClass> beans ) {
    ...
}

Spring將以某種方式收集列表並將其注入。 如果您不需要知道何時注入列表,也可以將其作為字段注入:

@Autowired
private List<MyClass> beans;

您還必須在

AnnotationConfigApplicationContext

如果要在XmlContext和AnnotationContext中搜索,則必須將它們與

 @ImportResource("classpath:xmlcontext.xml")

在帶注釋的配置中

或者,您可以嘗試實現ApplicationContextAware接口並在其提供的Context中搜索。

暫無
暫無

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

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