Quiero integrar Spring Framework en mi proyecto, especialmente en el lado del servidor.
Por lo tanto, no quiero ponerlo dentro de la carpeta WEB-INF del archivo war.
¿Debo poner un applicationContext.xml en cada capa (significa cada proyecto ya que está dividido en proyectos distintos? (Servicios, Dominio y DAO)
¿Cuál es la buena práctica?
Respuestas:
La estructura del archivo Maven puede ayudar con esto
En esencia, los archivos de configuración de Spring (que pueden tener cualquier nombre, no solo el genérico
applicationContext.xml
) se tratan como recursos classpath y se archivan ensrc/main/resources
. Durante el proceso de compilación, estos se copian en elWEB-INF/classes
directorio, que es el lugar normal para que estos archivos terminen.Las variaciones incluyen un
spring
directorio adicional (por ejemplosrc/main/resources/spring
) para separar los contextos de Spring de otros recursos dedicados a los marcos de aplicaciones. Es posible que desee dividir los contextos de la aplicación en capas dedicadas como:y así.
¿Qué pasa con diferentes entornos como desarrollo / prueba / producción?
Por lo general, su configuración de Spring debe recoger la configuración del entorno de su, ejem, entorno. Por lo general, esto significa utilizar JNDI, JDBC, variables de entorno o archivos de propiedades externos para proporcionar la configuración necesaria. Los enumero en orden de preferencia ya que JNDI es generalmente más fácil de administrar que los archivos de propiedades externas en un clúster de producción controlado.
En el caso de las pruebas de integración, es posible que deba usar un archivo de configuración de Spring "solo de prueba". Esto contendría contextos especiales que usan beans de prueba o configuración. Estos estarían presentes en src / test / resources y pueden tener un
test-
prefijo para asegurarse de que los desarrolladores conozcan su propósito. Un uso típico sería proporcionar una fuente de datos que no sea JNDI, tal vez dirigida a una base de datos HSQLDB durante las pruebas automatizadas de compilación y se referenciaría dentro del caso de prueba.Sin embargo, en general, la mayoría de los archivos de contexto de Spring no deberían necesitar modificaciones especializadas a medida que se mueven entre niveles. Debería darse el caso de que se use el mismo artefacto de compilación (por ejemplo, archivo WAR) en dev / test / production solo con credenciales diferentes.
fuente
¿Su proyecto está dividido en módulos Maven? Si es así, puede agregar un módulo adicional solo para los archivos de configuración. Vamos a llamarlo módulo de configuración
Tal configuración es una sugerencia. Configure su propio conjunto de archivos. Empaquételo como un JAR y agregue este módulo como dependencia de cualquier otro módulo (web, ear's lib, otro jar).
Tendrá acceso a los recursos del módulo de configuración (xml, propiedades, etc.) porque están en el classpath.
pom del módulo web
Luego use las declaraciones de importación de archivos de contexto externos de Spring. Por ejemplo
fuente