Actualmente estamos escribiendo una aplicación que se divide en múltiples proyectos/módulos. Por ejemplo, tomemos los siguientes módulos:Uso de múltiples archivos de propiedades (a través de PropertyPlaceholderConfigurer) en múltiples proyectos/módulos
- myApp-DAO
- myApp-jabber
Cada módulo tiene su propio archivo XML contexto primavera. Para el módulo DAO tengo un PropertyPlaceholderConfigurer que lee un archivo de propiedad con los parámetros de conexión db necesarios. En el módulo jabber también tengo PropertyPlaceHolderConfigurer para las propiedades de conexión de jabber.
Ahora viene la aplicación principal que incluye myApp-DAO y myApp-jabber. Lee todos los archivos de contexto y comienza un gran contexto de primavera. Desafortunadamente, parece que solo puede haber un PropertyPlaceholderConfigurer por contexto, por lo que el módulo que se cargue primero podrá leer sus parámetros de conexión. El otro arroja una excepción con un error como "No se pudo resolver el marcador de posición 'jabber.host'"
Entiendo el problema, pero realmente no sé una solución, o la mejor práctica para mi usecase
¿Cómo podría configurar cada módulo para que cada uno pueda cargar su propio archivo de propiedades? En este momento, he movido el PropertyPlaceHolderConfigurer fuera de los archivos de contexto separados y los he fusionado en el contexto de la aplicación principal (cargando todos los archivos de propiedades con un solo PropertyPlaceHolderConfigurer). Esto apesta, porque ahora todos los que usan el módulo dao tienen que saber que necesitan un PropertyPlaceHolderConfigurer en su contexto ... también fallan las pruebas de integración en el módulo dao, etc.
Tengo curiosidad por saber sobre soluciones/ideas de la comunidad stackoverflow ...
1 para el uso de la palabra "chupar" :-D –
@PeterWippermann ¿Por qué no se negrita? : D – Nabin