resueltos plata manganeso los elementos electronica ejercicios ejemplos distribucion configuracion atomica abreviada java spring

java - plata - ¿Cómo se hace una configuración de resorte de múltiples módulos?



configuracion electronica ejemplos (1)

Tengo un multi-módulo (maven) de construcción de primavera. Todos los módulos publican algunos beans, y la mayoría también consume beans definidos más abajo en el gráfico de dependencia. Aunque la mayoría de ellos son beans declarados de anotación, casi todos los módulos también tienen uno o dos beans declarados xml.

Aunque tenemos una solución medio decente, pero realmente me pregunto cuál es la forma correcta / óptima de organizar los archivos XML en este escenario. ¿Usas importación entre los módulos o hay alguna otra forma? ¿Coloca todos los archivos XML en un lugar o los distribuye de acuerdo con el gráfico de dependencia? ¿Cómo maneja su solución los contextos de resortes parciales (pruebas de integración típicas)?

También me gustaría tener esto organizado de una manera que me permita aprovechar de manera óptima el soporte de primavera de mi IDE (IDEA y algunos usuarios de eclipse).


Utilizamos las importaciones con comodines en los módulos para permitir que otros módulos contribuyan con beans al módulo que declara la importación:

<import resource="classpath*:com/acme/**/*-core-support.xml" />

Modularidad

Los módulos que desean contribuir al "host" solo tienen que colocar los archivos con el nombre correcto en src/main/resources/com/acme en este caso para que sean recogidos automáticamente. Si utiliza la exploración de classpath (por <context:component-scan /> será aún más fácil).

Otra cosa que ayuda en ese sentido es una pequeña extensión de Spring que recoge beans de un tipo dado y los vuelve a publicar en ApplicationContext nuevo. Al hacer algo como esto:

<plugin:list id="beanList" class="com.acme.MyCoolPluginInterface" /> <bean class="com.acme.MyPluginHost"> <property name="plugins" ref="beanList" /> </bean>

En combinación con la importación de comodines esto:

  1. Recoja todos los beans que se encuentran en ApplicationContext que implementan MyCoolPluginInterface y envuélvalos en una lista registrada como beanList en ApplicationContext .
  2. Permitir que MyPluginHost referencia a esa lista.

De hecho, ahora puede simplemente extender su aplicación agregando módulos de complemento a la ruta de clases (también conocida como dependencia en Maven).

Esa pequeña extensión de Spring se llama Spring Plugin y se publica bajo la licencia de Apache 2. Ver