ehcache+springmvc 4.3 在使用@cacheable时出错

xierfly xierfly 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
<!-- spring cache 配置 -->
<!-- 启用缓存注解功能,这个是必须的,否则注解不会生效,另外,该注解一定要声明在spring主配置文件中才会生效 -->
<cache:annotation-driven cache-manager="cacheManager"/>

<!-- 配置缓存管理器,获取cache -->
<bean id="cacheManager" class="org.springframework.cache.ehcache.EhCacheCacheManager">
<property name="cacheManager" ref="ehCacheFactory"/>
</bean>

<!-- 配置Ehcache缓存管理器,读取配置文件 -->
<bean id="ehCacheFactory" class="org.springframework.cache.ehcache.EhCacheManagerFactoryBean">
<property name="configLocation" value="classpath:ehcache.xml"/>
<property name="shared" value="true"/>
</bean>



我的SearchModel是一个实体,并且也实现了equal 、hashcode了;

方法传入方式如下:
leadsCombineChartsStatList(@ModelAttribute SearchModel searchModel, Integer start, Integer length)
{
// 其他code
leadsChartService.selectCombineEachDayLeads(searchModel);
// 其他code
}

不起作用的cacheable
@Cacheable(value = "leadsChartCache", key = "#searchModel.getBeginTime()+searchModel.getEndTime()", unless = "#searchModel==null")
@Override
public List<LeadsCombineChartViewModel> selectCombineEachDayLeads(SearchModel searchModel)

报错内容:
Property or field 'searchModel' cannot be found on object of type 'org.springframework.cache.interceptor.CacheExpressionRootObject' - maybe not public?

另外试了一下,改正这样的,也是报同样的错误:
@Cacheable(value = "leadsChartCache", key = "#root.targetClass+root.methodName")




...全文
评论
收藏 已收藏
分享
返回顶部
xierfly
其他开发语言 3,425 成员 15,624 内容