【问题标题】:Cache Evict is not working缓存驱逐不起作用
【发布时间】:2016-05-10 20:32:49
【问题描述】:

在我的项目中,我正在使用 @Cacheable 注释 ia 一个服务方法,它返回涉及书籍和一些标记的计算结果,我想在 @Controller 类方法中取消缓存,将新书添加到数据库中,因为这个新的对于新的计算是必要的。

服务等级: @Cacheable("元") public ... calculate(){return calculation;}

控制器类: @RequestMapping @CacheEvict(value="metas", allEntries=true) public void addNewBook();

为什么它不起作用?

【问题讨论】:

    标签: spring caching


    【解决方案1】:

    您很可能在根应用程序上下文中有@EnableCaching。这不会对子 DispatcherServlet 应用程序上下文产生影响。控制器上的 @CacheEvict 注释不会被处理。 Spring 使用 BeanPostProcessor 通过代理在运行时编织缓存行为。 BeanPostProcessor 的范围是每个应用程序上下文。

    将 addNewBook 方法定义和缓存元数据移动到您的服务类并从控制器调用该方法

    【讨论】:

    • 你能再具体一点吗?什么是缓存元数据以及如何移动它?
    猜你喜欢
    • 1970-01-01
    • 2018-03-23
    • 1970-01-01
    • 1970-01-01
    • 2018-08-20
    • 1970-01-01
    • 1970-01-01
    • 2013-09-16
    • 2017-06-17
    相关资源
    最近更新 更多