2012-06-25 33 views
1

我正在嘗試使用Sping Annotation緩存和EhCache。所以,第一,我添加了依賴我的pom.xml和配置應用程序的context.xml爲:Spring註釋緩存:CacheDecoratorFactory未配置爲defaultCache

<ehcache:annotation-driven cache-manager="cacheManager" /> 

<ehcache:config cache-manager="cacheManager"> 
    <ehcache:evict-expired-elements interval="60" /> 
</ehcache:config> 

<bean id="cacheManager" class="org.springframework.cache.ehcache.EhCacheManagerFactoryBean"> 
    <property name="configLocation" value="ehcache.xml"/> 
</bean> 

這是ehcache.xml中配置文件:

<ehcache xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="http://ehcache.org/ehcache.xsd"> 
    <defaultCache eternal="true" maxElementsInMemory="100" overflowToDisk="false" /> 
    <cache name="alfresco" maxElementsInMemory="10" eternal="true" overflowToDisk="false" /> 
</ehcache> 

爲最後,我添加了Annontation @Cachable到需要被緩存的方法:

@Cacheable(value="alfresco") 
public EMContents getContents(RestTemplate restTemplate, String ticket, String webScriptUrl, String em_name) 

我創建了一個JUnit類調用兩次相同的方法,並且,它不第二次使用緩存(第一次不創建密鑰值)。

這似乎很好地工作,但我得到這個消息:

25 Jun 2012 19:40:07 INFO EhCacheManagerFactoryBean:100 - Initializing EHCache CacheManager 
25 Jun 2012 19:40:07 DEBUG ConfigurationFactory:148 - Configuring ehcache from InputStream 
25 Jun 2012 19:40:07 DEBUG BeanHandler:271 - Ignoring ehcache attribute xmlns:xsi 
25 Jun 2012 19:40:07 DEBUG BeanHandler:271 - Ignoring ehcache attribute xsi:noNamespaceSchemaLocation 
25 Jun 2012 19:40:07 DEBUG PropertyUtil:88 - propertiesString is null. 
25 Jun 2012 19:40:07 DEBUG CacheManager:605 - No disk store path defined. Skipping disk store path conflict test. 
25 Jun 2012 19:40:07 DEBUG ConfigurationHelper:184 - No CacheManagerEventListenerFactory class specified. Skipping... 
25 Jun 2012 19:40:07 DEBUG Cache:949 - No BootstrapCacheLoaderFactory class specified. Skipping... 
25 Jun 2012 19:40:07 DEBUG Cache:923 - CacheWriter factory not configured. Skipping... 
25 Jun 2012 19:40:07 DEBUG ConfigurationHelper:96 - No CacheExceptionHandlerFactory class specified. Skipping... 
25 Jun 2012 19:40:07 DEBUG Cache:949 - No BootstrapCacheLoaderFactory class specified. Skipping... 
25 Jun 2012 19:40:07 DEBUG Cache:923 - CacheWriter factory not configured. Skipping... 
25 Jun 2012 19:40:07 DEBUG ConfigurationHelper:96 - No CacheExceptionHandlerFactory class specified. Skipping... 
25 Jun 2012 19:40:07 DEBUG Cache:949 - No BootstrapCacheLoaderFactory class specified. Skipping... 
25 Jun 2012 19:40:07 DEBUG Cache:923 - CacheWriter factory not configured. Skipping... 
25 Jun 2012 19:40:07 DEBUG ConfigurationHelper:96 - No CacheExceptionHandlerFactory class specified. Skipping... 
25 Jun 2012 19:40:07 DEBUG Cache:949 - No BootstrapCacheLoaderFactory class specified. Skipping... 
25 Jun 2012 19:40:07 DEBUG Cache:923 - CacheWriter factory not configured. Skipping... 
25 Jun 2012 19:40:07 DEBUG ConfigurationHelper:96 - No CacheExceptionHandlerFactory class specified. Skipping... 
25 Jun 2012 19:40:07 DEBUG Cache:949 - No BootstrapCacheLoaderFactory class specified. Skipping... 
25 Jun 2012 19:40:07 DEBUG Cache:923 - CacheWriter factory not configured. Skipping... 
25 Jun 2012 19:40:07 DEBUG ConfigurationHelper:96 - No CacheExceptionHandlerFactory class specified. Skipping... 
25 Jun 2012 19:40:07 DEBUG Cache:1183 - Initialised cache: alfresco_action 
25 Jun 2012 19:40:07 DEBUG ConfigurationHelper:331 - CacheDecoratorFactory not configured. Skipping for 'alfresco_action'. 
25 Jun 2012 19:40:07 DEBUG ConfigurationHelper:360 - CacheDecoratorFactory not configured for defaultCache. Skipping for 'alfresco_action'. 
25 Jun 2012 19:40:07 DEBUG Cache:1183 - Initialised cache: alfresco 
25 Jun 2012 19:40:07 DEBUG ConfigurationHelper:331 - CacheDecoratorFactory not configured. Skipping for 'alfresco'. 
25 Jun 2012 19:40:07 DEBUG ConfigurationHelper:360 - CacheDecoratorFactory not configured for defaultCache. Skipping for 'alfresco'. 
25 Jun 2012 19:40:07 DEBUG DefaultListableBeanFactory:458 - Finished creating instance of bean 'cacheManager' 

任何線索?我的配置似乎有問題。

感謝您的時間
安德烈

回答

0

安德烈,

確保與@Cachable註釋bean的實例是Spring管理的,而不是一個你正在創建自己。如果您擁有正確的日誌,當調用該方法時,日誌會產生如下所示的內容:

2012-11-16 09:40:21,731 [http-8081-2] DEBUG com.googlecode.ehcache.annotations.interceptor.EhCacheInterceptor - Generated key '1396312488991822982' for invocation: ReflectiveMethodInvocation: public edu.wmich.gowmu.sso.dataobject.User edu.wmich.gowmu.sso.bl.UserManager.getUser(java.lang.String,java.lang.String); target is of class [edu.wmich.gowmu.sso.bl.UserManager] 
相關問題