SpringBoot 缓存注解 与EhCache的使用 在SpringBoot工程中配置EhCache缓存

 

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

SpringBoot 缓存注解 与EhCache的使用
在SpringBoot工程中配置EhCache缓存

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中使用注解

SpringBoot 缓存注解 与EhCache的使用
在SpringBoot工程中配置EhCache缓存

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

spring.jpa.show-sql=true

SpringBoot 缓存注解 与EhCache的使用
在SpringBoot工程中配置EhCache缓存

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


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

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

CacheManager manager = CacheManager.getInstance();

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

扩展内容待补充 。。。