У меня есть модуль util, который создает банку, которая будет использоваться в других приложениях. Я хотел бы, чтобы этот модуль использовал кеширование и предпочел бы использовать кеширование Spring annotation-driven
.
Итак, Util-Module
будет иметь что-то вроде этого:
DataManager.java
...
@Cacheable(cacheName="getDataCache")
public DataObject getData(String key) { ... }
...
Данные-менеджер-ehcache.xml
...
<cache name="getDataCache" maxElementsInMemory="100" eternal="true" />
...
данных 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) { ... }
...
мой-приложение-ehcache.xml
...
<cache name="getMyAppObjectCache" maxElementsInMemory="100" eternal="true" />
...
мой-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"/>
...
Вопрос:
Можно ли использовать кэширование с привязкой к аннотации как в вашем основном проекте, так и в модуле зависимостей, сохраняя разделенные конфигурации?
Если нет, объясните, почему это не так. Если это так, то будет оценено объяснение того, что необходимо изменить в приведенной выше конфигурации.