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