想不到自己的ehcache是1.5版 最高的都到2.4版了
发现hibernate3.3对二级缓存的实现加强了。采用新的实现
<prop key="hibernate.cache.use_second_level_cache">true</prop>
<prop key="hibernate.cache.use_query_cache">true</prop>
<prop key="hibernate.cache.region.factory_class">net.sf.ehcache.hibernate.EhCacheRegionFactory</prop>
<prop key="net.sf.ehcache.configurationResourceName">/ehcache-class.xml</prop>
ehcache的分支用到的分为2块 hibernate+web
2块应该来说没什么关系,hibernate的话spring3.1支持annotation方式更方便的使用缓存
@Cacheable(value = "findPageCache")
@CacheEvict(value = "findPageCache", allEntries = true)
这个是查询缓存么?我认为这个是方法级缓存。 至于查询缓存着可以分得更细
setCacheQueries(true);
web缓存和spring的配置让我感到很伤。
理论上:
<bean id="cacheManager" class="org.springframework.cache.ehcache.EhCacheCacheManager"
p:cacheManager-ref="ehcache" />
<bean id="ehcache"
class="org.springframework.cache.ehcache.EhCacheManagerFactoryBean"
p:config-location="classpath:ehcache-web.xml" />
就能指定web缓存的配置,而且log也显示已经加载成功了,但是
老是报:net.sf.ehcache.CacheException: cache 'XXXX' not found in configuration
如果在classpath下写一个默认的
cache.xml当然是没问题的,因为ehcache默认的就是去那个文件里面找。但是为什么配置filter会找不到cache?难道fileter没有和spring结合起来?还要再看看。