2012-05-19 17 views
5

Ho una grande applicazione che voglio suddividere in moduli gestibili. Sto usando Spring con Jpa (Hibernate come fornitore). Ho trovato una struttura in cui ho un modulo principale contenente tutte le entità e le classi dao, e gli altri moduli fanno uso del modulo principale per quanto riguarda la persistenza, e ognuno di essi avrà il proprio insieme di classi di servizio e controller.Autowiring di bean da un modulo diverso

enter image description here

Tutti i file di configurazione dell'APP e molla sono nel modulo principale. Con questo setup sto affrontando un problema di auto-acquisizione dei bean dao nei moduli che fanno uso del modulo core. Quindi la mia domanda è: è possibile scovare i bean dal modulo principale negli altri moduli (o probabilmente usare un contesto tra i moduli)? Sono aperto anche a suggerimenti riguardanti la struttura, se esiste un modo migliore per farlo.

Grazie

+0

I moduli sono moduli Maven? –

risposta

0

Il modulo Nucleo deve essere il contesto primavera genitore che deve essere settato in ogni modulo contesto bambino. In questo modo non c'è ploblem con autowiring

ogni contesto bambino può raggiungere tutti i fagioli dal padre, ma essere consapevoli di quel genitore non può vedere i figli

A seconda di come è stato configurato l'applicazione, è possibile fallo in molti modi, io e.

  1. distribuire il vostro modulo di base in un barattolo separato per ciascun modulo, come è descritto in questo articolo Sharing a spring context across multiple Webapps
  2. Programatically, avendo la vostra primavera xml nucleo in ogni modulo del bambino, si può fare questo:

    ClassPathXmlApplicationContext parentAppContext = new ClassPathXmlApplicationContext(); 
    parentAppContext.setConfigLocation("spring-core.xml"); // this is your core spring xml 
    parentAppContext.refresh(); 
    ClassPathXmlApplicationContext moduleAppContext = new ClassPathXmlApplicationContext(); 
    moduleAppContext.setConfigLocation("others.xml"); 
    moduleAppContext.setParent(parentAppContext); 
    moduleAppContext.refresh(); 
    
+0

Ciao, grazie per la risposta! Quindi, come si crea un modulo come contesto genitore in un altro modulo? – Chappex

Problemi correlati