jeśli jest więcej niż jeden kontekst, jeśli używasz sprężynowego mvc, możesz użyć czegoś tak potężnego.
public class SampleContextApplicationListener implements ApplicationListener<ApplicationContextEvent> {
private Map<String,ApplicationContext> contextMap = new Hashtable<String,ApplicationContext>();
@Override
public void onApplicationEvent(ApplicationContextEvent event) {
if(event instanceof ContextStartedEvent || event instanceof ContextRefreshedEvent){
this.getContextMap().put(event.getApplicationContext().getDisplayName(), event.getApplicationContext());
}
}
public Map<String,ApplicationContext> getContextMap() {
return contextMap;
}
}
Następnie można wprowadzić słuchacza, gdzie jest ona potrzebna, a ekstrakt mapę contextens a następnie interogate go dla wszystkich jego fasoli, używając getBeanDefinitionNames()
@Autowired
private StatusTestsApplicationListener listener;
Podejrzewałem, że to będzie łatwe, off aby spróbować i DZIĘKI! –
To było przydatne i test dla tych, którzy tego potrzebują: '@' Autowired ApplicationContext applicationContext; '@' Test public void testContext() { String [] beans = applicationContext.getBeanDefinitionNames(); dla (String b: beans) { System.out.println ("***" + b); } } –