2012-05-19 20 views
5

Tengo una gran aplicación que quiero dividir en módulos manejables. Estoy usando la primavera con Jpa (Hibernate como proveedor). Se me ocurrió una estructura en la que tengo un módulo central que contiene todas las clases de entidad y dao, y los otros módulos hacen uso del módulo principal con respecto a la persistencia, y cada uno de ellos tendrá su propio conjunto de clases de servicio y controladores.Arranque automático de granos de un módulo diferente

enter image description here

Todos los archivos de configuración de APP y de primavera son en el módulo de núcleo. Con esta configuración, estoy enfrentando un problema de autoverificación de beans Dao en los módulos que hacen uso del módulo central. Entonces mi pregunta es, ¿es posible conectar automáticamente los frijoles desde el módulo central en los otros módulos (o probablemente utilizar un contexto entre los módulos)? También estoy abierto a sugerencias sobre la estructura, si hay una mejor manera de hacerlo.

Gracias

+0

¿Los módulos son el módulo de Maven? –

Respuesta

0

El módulo Core deben ser el marco de Primavera de los padres que deben ser setted en cada módulo de contexto niño. De esta manera no hay ploblem con autowiring

Cada contexto niño puede llegar a los granos de la matriz, pero ser conscientes de que los padres no pueden ver a los niños

Dependiendo de cómo se haya configurado la aplicación, se puede haz esto de varias maneras, i. mi.

  1. la distribución de su módulo de la base en un frasco separado para cada módulo, como se describe en este artículo Sharing a spring context across multiple Webapps
  2. Programatically, tener su xml núcleo de muelles en cada módulo de niño, usted puede hacer esto:

    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

Hola, gracias por la respuesta! Entonces, ¿cómo se hace que un módulo sea un contexto principal en otro módulo? – Chappex

Cuestiones relacionadas