spring源码分析之cache demo
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相关推荐
- spring源码分析之cache注解
Spring 3.1 引入了激动人心的基于注释(annotation)的缓存(cache)技术,它本质上不是一个具体的缓存实现方案(例如EHCache 或者 OSCache),而是一个对缓存使用的抽象 ...
- Spring源码分析八:Mybatis ORM映射框架原理
文章目录 (一)Mybatis单独操作数据库程序 1.1.数据库表 1.2.建立PO 1.3.建立mapper接口映射 1.4.建立Mybatis配置文件 1.5.建立mapper映射文件 1.6.测 ...
- Spring 源码分析衍生篇十三 :事务扩展机制 TransactionSynchronization
文章目录 一.前言 二.TransactionSynchronization 1. TransactionSynchronization 1.1 TransactionSynchronization ...
- Spring 源码分析衍生篇三 : lookup-method 和 replaced-method
文章目录 一.前言 二.基本使用 1. 作用 三.原理实现 1. 预处理 1.1 AbstractBeanDefinition#prepareMethodOverrides 1.2 Autowired ...
- Spring源码分析【1】-Tomcat的初始化
org.apache.catalina.startup.ContextConfig.configureStart() org.apache.catalina.startup.ContextConfig ...
- spring源码分析之spring-core总结篇
1.spring-core概览 spring-core是spring框架的基石,它为spring框架提供了基础的支持. spring-core从源码上看,分为6个package,分别是asm,cgli ...
- 【Spring源码分析】Bean加载流程概览
代码入口 之前写文章都会啰啰嗦嗦一大堆再开始,进入[Spring源码分析]这个板块就直接切入正题了. 很多朋友可能想看Spring源码,但是不知道应当如何入手去看,这个可以理解:Java开发者通常从事 ...
- 【spring源码分析】IOC容器初始化(二)
前言:在[spring源码分析]IOC容器初始化(一)文末中已经提出loadBeanDefinitions(DefaultListableBeanFactory)的重要性,本文将以此为切入点继续分析. ...
- spring源码分析第六天------spring经典面试问题
spring源码分析第六天------spring经典面试问题 1.Spring5 新特性及应用举例 2.Spring 经典的面试问题 a.什么是 Spring 框架?Spring 框架有哪些主要模块 ...
最新文章
- AIX如何查看文件系统分布在哪个物理磁盘上
- suse linux 软件包安装,SUSE Linux 11系统rpm包离线安装GCC
- php tp框架分页源代码,ThinkPHP3.2框架自带分页功能实现方法示例
- 基于java的社团管理系统设计(含源文件)
- IE下的一个安全BUG —— 可实时跟踪系统鼠标位置
- Thingsboard 3.1.0 - 规则链:转换数据结构
- 黑客松Demo: Kata 的下一代镜像系统
- GPS 模块个人使用经验总结
- 我的团长我的团第二十七集
- Dev C++ 源文件编译时,确实没问题,但是运行时,总是提示源文件 未编译
- win8连接wifi成功但受限制_win8平板电脑魔兽评测 Win8平板Pi游戏平板电脑测评PO W1流畅运行...
- Java实现积分过期保证时间_商城会员积分过期的实现方案
- jqGrid与Struts2的结合应用(一) —— 显示基本Grid表格
- libuv源码分析(1)事件循环分析
- office(Excel)里面如何提取身份证中的出生日期
- 营销指南 | 几种常见的微博营销打法
- C# 计算中文汉字笔画数
- moxa串口服务器网页访问失败,moxa串口服务器连接设置
- 整理了几个物联网应用就业前景(附整理的岗位发展和挑战)
- ROS机器人自主导航详解
热门文章
- 11kw星三角启动延时几秒_电机星三角降压启动接线方法图解
- npoi生成的表格数字左上角_如何用openpyxl自动化编写Excel电子表格 进阶篇 下
- 服务器的硬盘功率,【群晖 DS916 NAS网络存储服务器使用体验】硬盘|系统|功耗_摘要频道_什么值得买...
- oracle游标理解,oracle游标的使用方法
- java字符串10_十个最常见的Java字符串问题
- java new 删除吗,java泛型对象初始化-java泛型对象会实例化吗T t=new T()
- MySQL中的二进制类型
- Qt中多线程与界面组件的通信
- python绘制折线图中文图例不显示_python使用matplotlib绘图时图例显示问题的解决...
- 马斯克超级计算机玩吃鸡,在50亿美元打造的计算机上运行《绝地求生大逃杀》会怎样?...