Ho intenzione di creare diversi contesti Spring con un contesto genitore. Ecco come ho intenzione di creare contesto genitore:Gerarchia dei contesti primaverili
new ClassPathXmlApplicationContext(new String[] {"ApplicationContext/application.xml"})
E ogni contesto genitore voglio creare in questo modo:
PropertyPlaceholderConfigurer configurer = new PropertyPlaceholderConfigurer();
configurer.setProperties(properties);
ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext(appContext);
context.addBeanFactoryPostProcessor(configurer);
context.setConfigLocation("ApplicationContext/beans.xml");
context.refresh();
L'idea è quella di avere molteplici contesti bambino con lo stesso gerarchia dei bean in ognuno di essi (DAO, servizi, origine dati, gestore transazioni, ecc.). La ragione per avere diversi contesti è richiesta per avere diverse fonti di dati diverse (una per ogni contesto applicativo in realtà). La struttura del database per ogni origine dati è la stessa. Quindi, ci sono alcune domande.
- È sicuro avere una tale gerarchia di contesti? Per esempio se ci sono 30 contesti figli?
- E la visibilità del bean di contesto cross child? Ad esempio, ho CustomerService bean dichiarato con @Component annotazione con diverse dipendenze DAO autowired. Spring esegue l'autowiring e altre azioni DI all'interno di un particolare contesto figlio?
- Inoltre, cercherò i bean dal contesto secondario utilizzando il seguente metodo: childContext.getBean (CustomerService.class); Ricevo il servizio clienti da questo specifico contesto figlio e non da un altro contesto figlio? Lo so, quel singleton di primavera è un singleton per contesto applicativo ma non è ancora sicuro.
PS. Esiste un altro modo per gestire più origini dati descritte here. Ma questo approccio sembra non essere davvero conveniente nel mio caso.
Ho notato che il tuo caso d'uso è esattamente uguale al mio. –