我有一个util模块,该模块会生成要在其他应用程序中使用的jar。我希望该模块使用缓存,并且希望使用Spring的annotation-driven缓存。
所以Util-Module会有这样的事情:
数据管理器
... @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注释进行缓存,同时将上述jar作为依赖项。所以我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"/> ...
题:是否可以在主项目和依赖项模块中同时使用注释驱动的缓存,同时保持配置分离?
如果没有,请解释一下为什么不这样做。如果是这样,将理解在上述配置中需要改变什么的解释。