2009-12-09 14 views
5

Me gustaría poder cargar archivos context.xml de spring on-the-fly, para que estén conectados con contextos previamente cargados (es decir, en contextA.xml puedo ref un bean definido en contextB.xml que era ya cargado). Me gustaría que los beans existentes no se destruyan y luego se creen cada vez que se agregue un contexto.primavera: agregue contexto xml sobre la marcha?

Respuesta

4

Es bastante fácil de hacer, la mayoría de las implementaciones de BeanFactory y ApplicationContext tienen el concepto de un contexto primario.

BeanFactory newFactory = new XmlBeanFactory(xmlResource, yourParentBeanFactory); 

// if you what an ApplicationContext 

ApplicationContext newContext = new ClassPathXmlApplicationContext(new String[]{"newBeans.xml"}, parent); 

ver http://static.springsource.org/spring/docs/2.5.x/api/org/springframework/beans/factory/xml/XmlBeanFactory.html

referencias al interior del nuevo contexto que no puede ser resuelta dentro de su auto se pasan hasta que el padre y para su padre.

Tenga en cuenta que puede obtener el contexto actual de la aplicación implementando ApplicationContextAware.

+0

¿Y sin usar el padre? – IttayD

+1

que implicaría cambiar el continuo del espacio-tiempo y cruzar las secuencias al mismo tiempo. Dar al nuevo contexto un padre es la manera de hacerlo, no hay realmente otra opción. –

+0

En realidad, puede usar 'new ClassPathXmlApplicationContext (new String [] {" newBeans.xml "})'. Entonces obtendrás un nuevo contexto de primavera que no tiene relación con el contexto existente. – sleske

Cuestiones relacionadas