在SpringBoot工程中配置EhCache缓存

1.在src/main/resources下新建ehcache.xml文件

eternal=true //缓存永久有效,false相反

maxElementsInMemory //cache 中最多可以存放的元素的数量。如果放入cache中的元素超过这个数值,有两种情况:1、若overflowToDisk的属性值为true,会将cache中多出的元素放入磁盘文件中。2、若overflowToDisk的属性值为false,会根据memoryStoreEvictionPolicy的策略替换cache中原有的元素

timeToLiveSeconds//为在eternal为false时,缓存失效的时间

timeToIdleSeconds //若5分钟内,该缓存未被调用,则也会失效

举例说明:timeToLiveSeconds =3600 timeToIdleSeconds =300

以上配置代表缓存有效时间为3600秒(自缓存建立起一个小时有效 ),在有效的一个小时内,如果连续五分钟未访问缓存,则缓存失效,特别说明的是,就算缓存访问从未间断,到一个小时后,缓存也会失效

配置参考 https://blog.csdn.net/mlitsn/article/details/1909192

2.加入配置后,在DAO中使用注解

3.当调用该方法时,首次调用数据库后,再次调用该方法时将不在查询数据库,可以在application.properties配置文件中加入打印Hibernate sql的配置

spring.jpa.show-sql=true

会发现,只查询了一次,说明配置生效了

4.在新增和更新及删除时数据变了,不能还拿缓存的老数据吧 ,缓存怎么去更新呢?

需要CacheManager去管理缓存,在新增和更新及删除时,需要使用CacheManager去刷新缓存

CacheManager manager = CacheManager.getInstance();

manager.getCache("findByMethodName").flush();//findByMethodName为在ehcache中配置的缓存名

扩展内容待补充 。。。

SpringBoot 缓存注解 与EhCache的使用的更多相关文章

  1. spring-boot -缓存注解

    缓存:商品信息放到缓存中间件中, 验证码几秒钟有效也是放在缓存中间件. 缓存规范 交互流程: 如果需要使用jRS107需要导入包: java.cache.cache-api JSR107提供的是接口, ...

  2. springboot缓存注解——@Cacheable和@CacheConfig

    @Caching :制定多个缓存规则 @Cacheable 和 @CachePut 同时标注时 ,@CachePut导致还是会走方法跟数据库交互 //根据lastName查,并将结果缓存,并且可以用于 ...

  3. springboot缓存注解——@Cacheable

    @Cacheable: 1,方法运行之前,先查询Cache(缓存组件),按照cacheName指定的名字获取(CacheManager获取相应缓存) 第一次获取缓存如果没有Cache组件会自会自动创建 ...

  4. springboot缓存注解——@CacheEvict

    @CacheEvict:缓存清除 可以通过key指定清除的数据 如果不写默认参数的值 allEntries = true (是否删除该缓存名中所有数据,默认为false) beforeInvocati ...

  5. springboot缓存注解——@CachePut

    @CachePut:既调用方法,又更新缓存数据:修改了数据库的某个数据,同时又更新缓存 运行时机: 先调用目标方法 将目标方法的结果缓存起来 注意: @Cacheable的key不能用#result来 ...

  6. SpringBoot:缓存注解@Cacheable详解

    1.查看@Cacheable @Target({ElementType.TYPE, ElementType.METHOD}) @Retention(RetentionPolicy.RUNTIME) @ ...

  7. spring boot学习(十三)SpringBoot缓存(EhCache 2.x 篇)

    SpringBoot 缓存(EhCache 2.x 篇) SpringBoot 缓存 在 Spring Boot中,通过@EnableCaching注解自动化配置合适的缓存管理器(CacheManag ...

  8. SpringBoot开启缓存注解

    https://blog.csdn.net/sanjay_f/article/details/47372967 https://www.cnblogs.com/lic309/p/4072848.htm ...

  9. springboot:自定义缓存注解,实现生存时间需求

    需求背景:在使用springbot cache时,发现@cacheabe不能设置缓存时间,导致生成的缓存始终在redis中. 环境:springboot 2.1.5 + redis 解决办法:利用AO ...

随机推荐

  1. Expression.Blend.4 Chapter 接口设计

    原文:Expression.Blend.4 Chapter 接口设计 发现网上关于silverlight,WPF美工系列的书籍一直很少,而且很多都是英文的.在公司无聊,开始进行翻译. 翻译的地方可能有 ...

  2. WPF 4 日历控件(Calendar)

    原文:WPF 4 日历控件(Calendar)      在之前我已经写过两篇关于WPF 4 任务栏(Taskbar)相关的特性.相信自从VS2010 Beta 版放出后,WPF 的粉丝们肯定在第一时 ...

  3. 终端开发补充 : 读 curses模块官方文档...

    curses是一个提供终端屏幕打印和键盘处理的库, 我个人的理解就是终端里的gui(当然它是基于文本的)... 写2048的时候用到了这个库, 所以现在过来好好研究一下这个库... 下面是文档内容 : ...

  4. C#并口热敏小票打印机打印位图

    原文:C#并口热敏小票打印机打印位图 最近一直在研究并口小票打印机打印图片问题,这也是第一次和硬件打交道,不过还好,最终成功了.   这是DEMO的窗体:   下面是打印所需要调用的代码: class ...

  5. Rust这种新型的语言注定火不起来,功能太强大(特性太多),还不如用成熟稳定强大的C/C++,而且生态不行、所以恶性循环

    这种新型的语言注定火不起来,功能太强大(特性太多),还不如用成熟稳定强大的C/C++,,而Golang足够简单,入门快,编译快,性能也强悍,解决了服务端开发人员的痛点,,注定被大多数人接受... go ...

  6. iOS判断当前时间是否处于某个时间段内

    /** * 判断当前时间是否处于某个时间段内 * * @param startTime 开始时间 * @param expireTime 结束时间 */ - (BOOL)validateWithSta ...

  7. PMC另类阐述

    生产部门,坦克,铠甲战士,血厚硬气 业务部门,刺客,杀气十足,强势收割人头 采购部门,法师,在坦克身后持续输出 PMC,辅助,血不够厚扛不了伤害,输出不够拿不到人头,是团队中最容易被忽视的角色 坦克和 ...

  8. iOS中的加密操作

    最近项目中用到了一些加密操作,在这里简单总结了一下.总的来说加密分为对称加密和非对称加密两种,下面对这两种加密方式作一个简单的说明. 对称加密(Symmetric Cryptography) 对称加密 ...

  9. 我们错过了那么多机会,怎么办(就是预见未来的能力,并且要去做、要去投入,所以要主动学习、储备、选择,要不断的思考)good

    那天在IT职业咨询QQ群里聊天,提到腾讯.阿里,我说跟着这两家公司从小到大的朋友,都获得了不菲的回报,成了富翁或者财务自由了. 有群友感叹说:“是啊,我们错过了那么多机会.” 看到这句话,我心里一动, ...

  10. 【redis】redis的bind配置

    原文:[redis]redis的bind配置   在配置文件redis.conf中,默认的bind 接口是127.0.0.1,也就是本地回环地址.这样的话,访问redis服务只能通过本机的客户端连接, ...