spring中CacheEvict无效呢? 1C

在springmvc spring项目中@CacheEvict清除不了缓存呢?
@CacheEvict(value = CacheConstant.CATEGORIES, allEntries = true)

1

4个回答

使用@CacheEvict注解的方法必须是controller层直接调用,service里间接调用不生效

4
1

你把@CacheEvict的方法和@Cache的方法放到一个java文件中写,他俩在两个java文件的话,会导致@CacheEvict失效

0

返回值设置为**void**试试

@CacheEvict annotation

It is important to note that void methods can be used with @CacheEvict

0
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
Spring Cache无效的问题以及解决办法
昨天碰到Cache无效的问题,现在已经找到原因并且解决。 把知识分享给大家,免得以后踩坑。 @Cacheable标注的方法,如果其所在的类实现了某一个接口,那么该方法也必须出现在接口里面,否则cache无效。 具体的原因是, Spring把实现类装载成为Bean的时候,会用代理包装一下,所以从Spring Bean的角度看,只有接口里面的方法是可见的,其它的都隐藏了,自然课看不到实现
springcache使用笔记003_注释驱动的 Spring cache 基本原理,注意和限制,@CacheEvict 的可靠性问题
基本原理 和 spring 的事务管理类似,spring cache 的关键原理就是 spring AOP,通过 spring AOP,其实现了在方法调用前、调用后获取方法的入参和返回值,进而实现了缓存的逻辑。我们来看一下下面这个图: 图 2. 原始方法调用图 上图显示,当客户端“Calling code”调用一个普通类 Plain Object 的 foo() 方法的时候,
springboot中关于缓存@Cacheable、@CacheEvict、@CachePut的用法理解浅析
我们要实现的是,当查询时,先从缓存中查找数据,当数据存在时,不查数据库,当数据不存在时,查找数据库,并将值存到redis中 首先,缓存中是没有数据的,redis查询keys * ,会发现redis中无数据 此时,调用查询方法(service层) /** * 查询所有角色菜单数据权限信息 * @return */ @Override @Cacheable(key =
发现@CacheEvict注解不生效问题探索
最近维护发现公司管理系统菜单添加和修改的时候,都无法实时生效的问题。简单记录一下解决方式: 经过多方查阅资料,和自己反复测试发现。 @CacheEvict(value="缓存区域") 同一个缓存区域只能在同一个类里面才会生效,我这块不生效的原因就是同一个缓存区域分别在两个类相同的缓存注解也就是@CacheEvict。这样就导致在清除缓存的时候,一直无法清除,导致@Cacheable一...
Spring cache 注解功能不起作用的解决方案
最近使用spring的cache模块来加速程序,写了很多注解,如: @Cacheable/@CachePut/@CacheEvict/@Caching 发现这些注解根本不起作用啊。赶紧跑去看了看spring的文档,发现缺失了下面内容: <cache:annotation-driven/>  之后我的配置文件如下:     <!-- cache start -...
springCache删除多个Key的缓存,@CacheEvict 删除多个
-
@CacheEvict无法解决分页缓存清除的解决思路
当下比较热门的spring缓存就是encache,但是最近在写毕业设计的时候,发现了在缓存分页的时候,往往只缓存了一页数据,导致点击下一页的时候,没有响应。因此花了点时间去了解了一想@CacheEvict。 在我们缓存一个数据的时候,都是缓存在一个key里面,如下 //这是插入的时候需要清除缓存key里面的内容 @CacheEvict(value = "aboutShop", key = "'se...
@CacheEvict只能单一清除的扩展 -模糊-正则清除多条缓存 解决
1.@CacheEvic(value="xx",key="xxx")只能单一删除,但是 @Cacheable(value = "autocms", key = "#root.targetClass+'.'+#root.method.name+'.'+#p0+'.'+#p1") public <T> PageInfo<T> getActivityBySho
@CacheEvict清除指定下所有缓存
@CacheEvict(cacheNames = "parts:grid",allEntries = true) 此注解会清除part:grid下所有缓存 @CacheEvict要求指定一个或多个缓存,使之都受影响。此外,还提供了一个额外的参数allEntries 。表示是否需要清除缓存中的所有元素。默认为false,表示不需要。当指定了allEntries为true时,Spring Cac...
SpringCache实现原理及核心业务逻辑(三)
SpringCache是SpringFramework3.1引入的新特性,提供了基于注解的缓存配置方法。它本质上不是一个具体的缓存实现方案(例如EHCache),而是一个对缓存使用的抽象,通过在已有代码中打上几个预定义的注释,就可以实现我们希望达到的缓存效果。SpringCache支持跟第三方缓存例如EHCache集成;另外也提供了开箱即用的默认实现,可以直接拿来使用。SpringCache支持使...
Spring Boot 整合Shiro和Redis关于@Cacheble注解无效的解决方法
在我做项目的时候,在Spring Boot 中对Shiro和Redis进行了整合,但实际发现Spring boot中Shiro和Redis集成后,Spring的@cacheble注解无效。 出现的情况如下: 如果只是Spring boot和Redis集成,那么@cacheble可用,会把缓存数据写入Redis。 如果只是Spring boot和Shiro集成,然后用Spring cache抽...
SpringCache源码深度解析
前言:     缓存是我们常用的一种优化系统的方案。     无论是前端缓存还是应用层缓存或者数据库缓存,其本质都是将查询过的数据缓存下来,下次再次查询该数据的时候如果数据没有过期,则直接返回缓存中该数据即可,不再执行查询操作。     SpringCache是我们常用的一种应用层缓存方案,其一般应用在方法上,下面我们先来看下具体的使用方式,然后再从源码角度分析其实现方案     读者需要...
Spring Cache同个类中手动调用不生效
因为需要用到缓存,于是选择使用Spring Cache来做,在Controller中我有个方法: @Cacheable(value = "mazo", key = "#p") public MyDto getMyDto(String p) { return MyService.findById(p);
@CacheEvict 模糊删除缓存问题-RedisTemplate 模糊key删除缓存
缓存管理使用注解形式,非常方便了我们的使用,然而今天我想 使用@CacheEvict 的实和key 进行 模糊删除,发现@CacheEvict 貌似不支持这样的操作,然后想起RedisTemplate 好像支持 key的模糊匹配。 于是,方法有了 既然@CacheEvict做不到,那就用RedisTemplate 第一步: 获取key 这里的key就是 : user:role*...
spring + redis使用@Cacheable,@CachePut,@CacheEvict
spring + redis使用@Cacheable,@CachePut,@CacheEvict详细步骤
spring-cache 数据库一致性解决方案
概述 本文先简单介绍spring-cache的使用即流程。再来了解使用cache会带来与数据库不一致的问题 spring-cache使用介绍 spring-cache实现原理 使用redis缓存是数据库一致性解决方案 spring-cache使用介绍 spring-cache支持注解(annotation)和xml两种配置.本次只展示注解(annotation)...
Spring缓存注解@Cache使用
参考资料 http://www.ibm.com/developerworks/cn/opensource/os-cn-spring-cache/ http://swiftlet.net/archives/774   缓存注解有以下三个: @Cacheable      @CacheEvict     @CachePut   @Cacheable(value=”accountCac...
spring缓存注解的condition属性
测试使用环境为spring boot+redis缓存 今天晚上突然对@Cacheable @Cacheput @CacheEvict三个注解配不配置 condition = "#result != null" 产生了疑问 总结如下: @Cacheable不能配置  condition = "#result != null" ,因为这个注解在进入方法前去检测condit
学习Spring Cache遇到的坑
搭建Spring Cache - Redis Core:Spring Boot ORM:Spring Data JPA 其他省略.... 0.0 实体类 @Data @RequiredArgsConstructor @AllArgsConstructor @Entity(name = "cx_user") public class User { ...
Spring Cache源码分析
Spring Cache源码分析 2018-05-05 10:55:20 星期六 1. @EnableCaching 我们通过在配置类中使用@EnableCaching开启Spring的缓存功能。 @EnableCaching 源码如下: @Target(ElementType.TYPE) @Retention(RetentionPolicy.RUNTIME) @Document...
Redis注解形式集成及注解详解(@Cacheable、@CacheEvict、@CachePut)
1.首先加入maven依赖 <!--redis start--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-r...
Spring Cache抽象-使用SpEL表达式
概述 SpEl表达式概述在Spring Cache注解属性中(比如key,condition和unless),Spring的缓存抽象使用了SpEl表达式,从而提供了属性值的动态生成及足够的灵活性。下面的代码根据用户的userCode进行缓存,对于key属性,使用了表达式自定义键的生成。public class UserService { private Map<Integer, User>
关于SpringCache 在同一个类中调用方法不生效的问题
如下图所示 在testA()方法中,每次调用getOne()方法,都会打印 为*****做了缓存,也就是在同一个类中调用支持缓存的方法是不会触发缓存功能的。这是因为Spring Cache的注解是采用Spring Aop来动态代理的,同个类中的调用自然就无法生效了。 而解决方案有种说法是将Spring AOP改成AspectJ 来解决(还未测试过),参考如下: http://www.bkjia....
Spring @Cacheable注解类内部调用失效问题
如图所示,getRecomendGoogs方法里面调用findImgUrlByName方法,在findImgUrlByName方法上使用@Cacheable注解的时候,并没有走缓存。 要解决这个问题,首先我们需要了解spring缓存的原理。spring cache的实现原理跟spring的事物管理类似,都是基于AOP的动态代理实现的:即都在方法调用前后  去获取方法的名称、参数、返回值,然后...
spring缓存机制-@CachePut的用法(四)
Spring缓存@CachePut注释的使用:既保证方法执行,又保证方法返回的数据放入缓存。
SpringBoot2.0的@Cacheable(Redis)缓存失效时间解决方案
问题   @Cacheable注解不支持配置过期时间,所有需要通过配置CacheManneg来配置默认的过期时间和针对每个类或者是方法进行缓存失效时间配置。 解决   可以采用如下的配置信息来解决的设置失效时间问题 配置信息 @Bean public CacheManager cacheManager(RedisConnectionFactory redisConn...
Cache 缓存数据和删除缓存的简单示例
想开发高性能的Web应用就要用到缓存技术。 简单的示例,通过修改就能成为商业代码!
关于SpringMVC中表单验证无效问题
问题描述:今天在研究Spring实战4的第五章时,在最后一节校验表单过程中,在idea敲入代码运行后,在域中加入了@NotNull和@Size后,同时在controller中也用@Valid进行了注解,可最终表单提交的时候,却发现spring并没有对表单的输入进行验证! 原因:spring只是支持jsr-303验证,但却不提供jsr-303的实现。 解决方案:在pom.xml中
Spring boot常用注解解释
@SpringBootApplication: Spring Boot应用标注在某个类上说明这个类是SpringBoot的主配置类,SpringBoot 就应该运行这个类的main方法来启动SpringBoot应用;    @SpringBootConfiguration:Spring Boot的配置类;  标注在某个类上,表示这是一个Spring Boot的配置类;  @Configuration:...
多个切面执行顺序(请先看spring cache篇)
代码https://github.com/HiwayChe/zheng/tree/develop/zheng-test spring cache篇https://www.jianshu.com/p/b9e85a139ea0 Cache切面在事务切面前面,只有事务执行成功才往cache中缓存数据。 代码中共有4个切面,分别为获取缓存失效时间,设置缓存,切...
MyEclipse断点不起作用.doc
MyEclipse断点不起作用.doc
SpringCache实现原理及核心业务逻辑(一)
springcache是springframework3.1引入的新特性,提供了基于注解的缓存配置方法。它本质上不是一个具体的缓存实现方案(例如EHCache),而是一个对缓存使用的抽象,通过在既有代码中添加少量它定义的各种annotation,即能够达到缓存方法的返回对象的效果。springcache支持和主流的专业缓存例如EHCache集成;另外也提供了开箱即用的默认实现,可以直接拿来使用。
spring boot缓存的自定义读写方法-模糊匹配批量删除
为什么要做这个 树是一个抽象的组件,其他项目可以用这个树来表示任何可以以树形结构表示的事务。 树要被权限控制,即每个权限组有属于自己的树 不同级别的权限组有不同的级别,能够操作属于其他权限组的树。 为什么要作缓存 节点数量完全能够达到上百万,以每个节点拥有20个孩子为例,当有6层时(包括根节点),就会拥有320万多个节点 在mysql里面,树是通过闭包表存储,所以关系表能够达到将近2000万...
Springboot 2.X中Spring-cache与redis整合
Springboot中Spring-cache与redis整合。这也是一个不错的框架,与spring的事务使用类似,只要添加一些注解方法,就可以动态的去操作缓存了,减少代码的操作。
@Cacheable注解不生效
在同一个类中,一个方法调用另外一个有注解(比如 @Cacheable,@Async,@Transational)的方法,注解是不会生效的。 原因: 通过Spring注解标识的方法,在Spring加载类的时候会生成代理类,通过代理类调用原本类的方法。 而同一个类中,方法间的调用并不会通过代理类,而是直接调用。 ...
echache缓存注解说明文档
echache缓存注解说明------    Spring为我们提供了几个注解来支持Spring Cache。其核心主要是@Cacheable和@CacheEvict。使用@Cacheable标记的方法在执行后Spring Cache将缓存其返回结果,而使用@CacheEvict标记的方法会在方法执行前或者执行后移除Spring Cache中的某些元素。下面我们将来详细介绍一下Spring基于注解对Cache的支持所提供的几个注解。
spring对ibatis的封装导致ibatis缓存cacheModel中的flushOnExecute失效,使增加和修改时不能清空缓存...
spring对ibatis的封装导致ibatis缓存cacheModel中的flushOnExecute失效,使增加和修改时不能清空缓存 原因:org.springframework.orm.ibatis.SqlMapClientFactoryBean 改变了ibatic的加载配置文件的顺序。 NodeletParser中letMap的执行顺序如下: / /sqlMapConfig ...
Spring-Cache key设置注意事项
对Spring-cache @Cacheable方式的key的一些注意事项进行介绍,尤其是多关键字组合和方法名识别的问题
缓存篇(三)- Spring Cache框架
前两篇我们讲了Guava和JetCache,他们都是缓存的具体实现,今天给大家分析一下Spring框架本身对这些缓存具体实现的支持和融合,使用Spring Cache将大大的减少我们的Spring项目中缓存使用的复杂度,提高代码可读性。本文将从以下几个方面来认识Spring Cache框架 背景 SpringCache产生的背景其实与Spring产生的背景有点类似。由于Java EE 系统框架...
Redis做缓存。这里其实主要学习几个注解:@CachePut、@Cacheable、@CacheEvict、@CacheConfig。
https://www.cnblogs.com/5ishare/p/9439381.html
相关热词 c#异步发送kafka c#窗体编号 c# 操作二进制文件 c# 反射 机制 c#线程 窗体失去响应 c#角度转弧度 c# 解析gps数据 c# vs设置 语法版本 c# json含回车 c#多线程demo