我有一个 util 模块,它生成一个 jar 用于其他应用程序。我希望这个模块使用缓存,并且更喜欢使用 Spring 的annotation-driven
缓存。
所以Util-Module
会有这样的事情:
数据管理器.java
...
@Cacheable(cacheName="getDataCache")
public DataObject getData(String key) { ... }
...
数据管理器-ehcache.xml
...
<cache name="getDataCache" maxElementsInMemory="100" eternal="true" />
...
数据管理器-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 注释进行缓存,同时将上述 jar 作为依赖项。所以我Deployable-Unit
会有这样的事情:
MyApp.java
...
@Cacheable(cacheName="getMyAppObjectCache")
public MyAppObject getMyAppObject(String key) { ... }
...
我的应用程序 ehcache.xml
...
<cache name="getMyAppObjectCache" maxElementsInMemory="100" eternal="true" />
...
我的应用程序弹簧配置.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"/>
...
问题:
是否可以在主项目和依赖模块中使用注释驱动的缓存,同时保持配置分离?
如果不是,请解释为什么不这样做。如果是这样,将不胜感激对上述配置中需要更改的内容的解释。