spring提供了对echache、guava、jcache的支持,先看一个echache的示例:

import org.springframework.cache.CacheManager;
import org.springframework.cache.annotation.EnableCaching;
import org.springframework.cache.ehcache.EhCacheCacheManager;
import org.springframework.cache.ehcache.EhCacheManagerFactoryBean;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
import org.springframework.core.io.ClassPathResource;@Configuration
@EnableCaching
@ComponentScan({ "com.mkyong.*" })
public class AppConfig {@Beanpublic CacheManager cacheManager() {return new EhCacheCacheManager(ehCacheCacheManager().getObject());}@Beanpublic EhCacheManagerFactoryBean ehCacheCacheManager() {EhCacheManagerFactoryBean cmfb = new EhCacheManagerFactoryBean();cmfb.setConfigLocation(new ClassPathResource("ehcache.xml"));cmfb.setShared(true);return cmfb;}/*@Beanpublic CacheManager defaultCacheManager() {return new ConcurrentMapCacheManager("books");}*/}

其中 echache.xml文件如下:

<ehcache xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:noNamespaceSchemaLocation="ehcache.xsd" updateCheck="true"monitoring="autodetect" dynamicConfig="true"><!-- <diskStore path="java.io.tmpdir" /> --><diskStore path="c:\\cache" /><cache name="movieFindCache" maxEntriesLocalHeap="10000"maxEntriesLocalDisk="1000" eternal="false" diskSpoolBufferSizeMB="20"timeToIdleSeconds="300" timeToLiveSeconds="600"memoryStoreEvictionPolicy="LFU" transactionalMode="off"><persistence strategy="localTempSwap" /></cache></ehcache>

缓存的使用:

@Repository("movieDao")
public class MovieDaoImpl implements MovieDao{@Cacheable(value="movieFindCache", key="#name")public Movie findByDirector(String name) {slowQuery(2000L);System.out.println("findByDirector is running...");return new Movie(1,"Forrest Gump","Robert Zemeckis");}private void slowQuery(long seconds){try {Thread.sleep(seconds);} catch (InterruptedException e) {throw new IllegalStateException(e);}}}

参考文献:

【1】http://www.mkyong.com/spring/spring-caching-and-ehcache-example/

转载于:https://www.cnblogs.com/davidwang456/p/5695630.html

spring源码分析之cache demo相关推荐

  1. spring源码分析之cache注解

    Spring 3.1 引入了激动人心的基于注释(annotation)的缓存(cache)技术,它本质上不是一个具体的缓存实现方案(例如EHCache 或者 OSCache),而是一个对缓存使用的抽象 ...

  2. Spring源码分析八:Mybatis ORM映射框架原理

    文章目录 (一)Mybatis单独操作数据库程序 1.1.数据库表 1.2.建立PO 1.3.建立mapper接口映射 1.4.建立Mybatis配置文件 1.5.建立mapper映射文件 1.6.测 ...

  3. Spring 源码分析衍生篇十三 :事务扩展机制 TransactionSynchronization

    文章目录 一.前言 二.TransactionSynchronization 1. TransactionSynchronization 1.1 TransactionSynchronization ...

  4. Spring 源码分析衍生篇三 : lookup-method 和 replaced-method

    文章目录 一.前言 二.基本使用 1. 作用 三.原理实现 1. 预处理 1.1 AbstractBeanDefinition#prepareMethodOverrides 1.2 Autowired ...

  5. Spring源码分析【1】-Tomcat的初始化

    org.apache.catalina.startup.ContextConfig.configureStart() org.apache.catalina.startup.ContextConfig ...

  6. spring源码分析之spring-core总结篇

    1.spring-core概览 spring-core是spring框架的基石,它为spring框架提供了基础的支持. spring-core从源码上看,分为6个package,分别是asm,cgli ...

  7. 【Spring源码分析】Bean加载流程概览

    代码入口 之前写文章都会啰啰嗦嗦一大堆再开始,进入[Spring源码分析]这个板块就直接切入正题了. 很多朋友可能想看Spring源码,但是不知道应当如何入手去看,这个可以理解:Java开发者通常从事 ...

  8. 【spring源码分析】IOC容器初始化(二)

    前言:在[spring源码分析]IOC容器初始化(一)文末中已经提出loadBeanDefinitions(DefaultListableBeanFactory)的重要性,本文将以此为切入点继续分析. ...

  9. spring源码分析第六天------spring经典面试问题

    spring源码分析第六天------spring经典面试问题 1.Spring5 新特性及应用举例 2.Spring 经典的面试问题 a.什么是 Spring 框架?Spring 框架有哪些主要模块 ...

最新文章

  1. AIX如何查看文件系统分布在哪个物理磁盘上
  2. suse linux 软件包安装,SUSE Linux 11系统rpm包离线安装GCC
  3. php tp框架分页源代码,ThinkPHP3.2框架自带分页功能实现方法示例
  4. 基于java的社团管理系统设计(含源文件)
  5. IE下的一个安全BUG —— 可实时跟踪系统鼠标位置
  6. Thingsboard 3.1.0 - 规则链:转换数据结构
  7. 黑客松Demo: Kata 的下一代镜像系统
  8. GPS 模块个人使用经验总结
  9. 我的团长我的团第二十七集
  10. Dev C++ 源文件编译时,确实没问题,但是运行时,总是提示源文件 未编译
  11. win8连接wifi成功但受限制_win8平板电脑魔兽评测 Win8平板Pi游戏平板电脑测评PO W1流畅运行...
  12. Java实现积分过期保证时间_商城会员积分过期的实现方案
  13. jqGrid与Struts2的结合应用(一) —— 显示基本Grid表格
  14. libuv源码分析(1)事件循环分析
  15. office(Excel)里面如何提取身份证中的出生日期
  16. 营销指南 | 几种常见的微博营销打法
  17. C# 计算中文汉字笔画数
  18. moxa串口服务器网页访问失败,moxa串口服务器连接设置
  19. 整理了几个物联网应用就业前景(附整理的岗位发展和挑战)
  20. ROS机器人自主导航详解

热门文章

  1. 11kw星三角启动延时几秒_电机星三角降压启动接线方法图解
  2. npoi生成的表格数字左上角_如何用openpyxl自动化编写Excel电子表格 进阶篇 下
  3. 服务器的硬盘功率,【群晖 DS916 NAS网络存储服务器使用体验】硬盘|系统|功耗_摘要频道_什么值得买...
  4. oracle游标理解,oracle游标的使用方法
  5. java字符串10_十个最常见的Java字符串问题
  6. java new 删除吗,java泛型对象初始化-java泛型对象会实例化吗T t=new T()
  7. MySQL中的二进制类型
  8. Qt中多线程与界面组件的通信
  9. python绘制折线图中文图例不显示_python使用matplotlib绘图时图例显示问题的解决...
  10. 马斯克超级计算机玩吃鸡,在50亿美元打造的计算机上运行《绝地求生大逃杀》会怎样?...