SpringBoot+Vue框架技术精讲与项目实战第7章SpringBoot与缓存SpringBoot+Vue框架技术精讲与项目实战第7章SpringBoot与缓存7.1JCache(JSR-107)规范7.2缓存抽象与缓存注解7.3EhCache2.x缓存7.4Redis缓存2SpringBoot+Vue框架技术精讲与项目实战7.1JCache(JSR-107)规范缓存在数据访问量比较大的系统中用的还是非常多的,为了统一缓存的开发规范,提升系统的扩展性,J2EE发布了JSR-107规范。1.什么是JSR-107规范JSR是JavaSpecificationRequests的缩写,意思是Java规范提案,2012年10月26日JSR规范委员会发布了JSR107(JCacheAPI)。JCache规范定义了一种对Java对象临时在内存中进行缓存的方法,包括对象的创建、共享访问、假脱机(spooling)、失效、各JVM的一致性等,可被用户缓存最经常访问的数据。3SpringBoot+Vue框架技术精讲与项目实战7.1JCache(JSR-107)规范JavaCaching定义了5个核心接口,具体如下:(1)CachingProvider:定义了创建、配置、获取、管理和控制多个CacheManager。一个应用可以在运行期间访问多个CachingProvider。(2)CacheManager:定义了创建、配置、获取、管理和控制多个唯一命名的Cache,这些Cache存在于CacheManager的上下文中。一个CacheManager仅被一个CachingProvider所拥有。(3)Cache:是一个类似Map的数据结构并临时存储以key为索引的值。一个Cache仅被一个CacheManager所拥有。(4)Entry:是一个存储在Cache中的key-value对。(5)Expiry:每一个存储在Cache中的条目有一个定义的有效期。一旦超过这个时间,条目为过期的状态。一旦过期,条目将不可访问、更新和删除。缓存有效期可以通过ExpiryPolicy设4SpringBoot+Vue框架技术精讲与项目实战7.1JCache(JSR-107)规范2.应用调用缓存应用首先会先调用CachingProvider(缓存提供者),缓存提供者管理了多个CacheManager(缓存管理器),缓存管理器中才是真正的Cache缓存。缓存管理器中可以管理不同类型的缓存,比如Redis、EhCache等。在具体缓存组件中,我们还可以设置不同模块的缓存,比如Redis中我们可以来缓存商品信息、热点数据等不同模块数据,每个缓存都是Entry键值对类型,并且可以对缓存设置Expiry过期时间,指定缓存存活时间,如图7-1所示。JSR-107作为一个Java规范,它定义的都是一些接口,类似于JDBC规范。直接面向接口编程,需要用到哪种缓存的实现,我们来直接引入该缓存实现即可,系统就能运行起来使用JSR107时需引入如下依赖5javax.cach...