У меня есть модуль утилиты, который создает банку для использования в других приложениях. Я бы хотел, чтобы этот модуль использовал кеширование, и предпочел бы использовать кеширование , управляемое аннотациями Spring .
Итак, Util-Module
будет иметь что-то вроде этого:
DataManager.java
...
@Cacheable(cacheName="getDataCache")
public DataObject getData(String key) { ... }
...
data-manager-ehcache.xml
...
<cache name="getDataCache" maxElementsInMemory="100" eternal="true" />
...
data-manager-spring-config.xml
...
<cache:annotation-driven cache-manager="data-manager-cacheManager" />
<!-- ???? --->
<bean id="data-manager-cacheManager"
class="org.springframework.cache.ehcache.EhcacheCacheManager"
p:cache-manager="data-manager-ehcache"/>
<bean id="data-manager-ehcache"
class="org.springframework.cache.ehcache.EhCacheManagerFactoryBean"
p:config-location="data-manager-ehcache.xml"/>
...
Я также хотел бы, чтобы в моем развертываемом модуле было кеширование через аннотацию Spring, при этом указанная выше банка была включена в качестве зависимости. Итак, мой Deployable-Unit
будет иметь что-то вроде этого:
MyApp.java
...
@Cacheable(cacheName="getMyAppObjectCache")
public MyAppObject getMyAppObject(String key) { ... }
...
my-app-ehcache.xml
...
<cache name="getMyAppObjectCache" maxElementsInMemory="100" eternal="true" />
...
my-app-spring-config.xml
...
<cache:annotation-driven cache-manager="my-app-cacheManager" />
<!-- ???? --->
<bean id="my-app-cacheManager"
class="org.springframework.cache.ehcache.EhcacheCacheManager"
p:cache-manager="my-app-ehcache"/>
<bean id="my-app-ehcache"
class="org.springframework.cache.ehcache.EhCacheManagerFactoryBean"
p:config-location="my-app-ehcache.xml"/>
...
Можно ли использовать кэширование, управляемое аннотациями, как в вашем основном проекте, так и в модуле зависимостей, сохраняя при этом конфигурации разделенными?
Если нет, было бы полезно объяснить, почему это не так. Если это так, было бы полезно объяснить, что нужно изменить в приведенной выше конфигурации.