数据缓存Cache
在博客后台 - 博客园 (cnblogs.com)中有关于Mybatis中Cache技术实现及应用介绍。Cache技术实现都是implements Cache接口,这个接口由JSR-107提供。实际上除了Mybatis,Spring也提供了对JSR-107的支持。
首先简单介绍JSR-107相关内容:Java Caching(JSR-107)定义了5个核心接口,分别是CachingProvider、CacheManager、Cache、Entry和Expiry,其具体功能如下:
其关系图如下:
Spring提供了org.springframework.cache.Cache和org.springframework.cache.CacheManager接口来统一不同的缓存技术;并支持使用JavaCaching注解简化我们进行缓存开发。其中,CacheManager是Spring提供的各种互斥技术抽象接口;Cache接口包含缓存的各种操作(增、删、获取缓存等), Cache 只负责维护抽象层,具体的实现由自己的技术选型来决定——进而将缓存处理和缓存技术解除耦合。
1、Spring内置的CacheManager,针对不同的缓存技术需要不同的CacheManager:
2、Spring内置的Cache:
Spring提供Java Cach注解简化开发,即支持声明式缓存注解(又是一个使用注解式AOP的生动例子)。具体如下: