[英]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.