2013-03-09 16 views
6

Ho una serie di errori dispari in fase di test e distribuzione. Sembrano indicare che alcuni dei miei bean non vengono caricati nel contesto, nonostante siano definiti in applicationContext.xml.Controllare quali bean sono stati caricati in un contesto di primavera

C'è un modo per verificare durante il test quali bean sono stati effettivamente caricati? O per trovare un elenco completo di bean caricati in fase di esecuzione?

Grazie, b

risposta

4

All'avvio, i registri a livello di primavera informazioni i nomi di tutti i fagioli corso di caricamento da un contesto. O nel codice, è possibile utilizzare getBeanDefinitionNames() per ottenere tutti i nomi dei bean.

+0

sospettavo che sarebbe stato facile, off per dare una prova e GRAZIE! –

+1

Questo è stato utile per i test di chi ne ha bisogno: '@' Autowired ApplicationContext applicationContext; '@' Test public void testContext() { String [] beans = applicationContext.getBeanDefinitionNames(); per (stringa b: bean) { System.out.println ("***" + b); } } –

0

se c'è più di un contesto dire se si sta usando mvc molla si può usare qualcosa di più potente come questo.

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; 
    } 
} 

È quindi possibile iniettare l'ascoltatore dove è necessario, ed estrarre la mappa di contextens e poi interogate per tutta la sua fagioli, utilizzando il getBeanDefinitionNames()

@Autowired 
private StatusTestsApplicationListener listener; 
+0

Grazie a @am Non sono ancora sicuro di come utilizzarlo. –

Problemi correlati