with starter example enable data cache annotation java configuration-files war ehcache web-deployment

java - starter - ¿Es posible usar múltiples ehcache.xml(en diferentes proyectos, en la misma guerra)?



spring boot starter cache example (3)

La propiedad configurationResourceName se usa para especificar la ubicación del archivo de configuración de ehcache. Se busca el recurso en la raíz de la ruta de clase. Se utiliza para admitir múltiples CacheManagers en la misma máquina virtual.

net.sf.ehcache.configurationResourceName=/name_of_ehcache.xml

Tengo un proyecto de servicios y un proyecto web. Necesito tener eh-cache en ambos proyectos.

La idea es que si el proyecto de servicio se actualiza, los cambios relacionados con el caché (como las claves y las reglas de invalidación) también estarán disponibles, mientras que no se realizan cambios al proyecto web. Siendo tan independiente, el proyecto de servicio también se puede usar con otros proyectos sin que ellos sepan siquiera de eh-cache.

En este punto, mi proyecto web también utiliza eh-cache para sus propios fines. No tengo mucha experiencia con eh-cache y temo que los dos proyectos puedan entrar en conflicto cuando se implementen juntos. Tampoco encontré información relevante en el sitio eh-cache.

¿Me puede dar alguna información sobre cómo configurar mejor los dos proyectos para que pueda cumplir con los requisitos anteriores?

Editar:

Estoy usando Spring, por lo tanto, preferiré usarlo para mis administradores de caché.

Estoy usando lo siguiente en el context.xml para cada jar con ehcache, por ejemplo para jar 1 tengo:

<ehcache:annotation-driven cache-manager="ehCacheManager1" /> <bean id="ehCacheManager1" class="org.springframework.cache.ehcache.EhCacheManagerFactoryBean"> <property name="configLocation" value="classpath:ehcache-1.xml" /> </bean>

y para jar 2 tengo

<ehcache:annotation-driven cache-manager="ehCacheManager2" /> <bean id="ehCacheManager2" class="org.springframework.cache.ehcache.EhCacheManagerFactoryBean"> <property name="configLocation" value="classpath:ehcache-2.xml" /> </bean>

Entonces, ¿ambas cachés estarán funcionando? Me temo que el ehcache:annotation-driven por el último contexto de lectura y solo un caché estará operativo. ¿Me equivoco, o me falta algo?


Si usa un caché diferente para diferentes WAR y quiere evitar colisiones, vaya a echcache.xml de cada WAR y defina diferentes valores multicastGroupPort bajo el elemento cacheManagerPeerProviderFactory. También deshabilitar la distribución.

¡Buena suerte!


Trate de nombrar a ambos administradores de caché de manera diferente en ehcache.xml

<ehcache xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" name="ehCacheManager1"> <ehcache xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" name="ehCacheManager2">