`
liuccc1
  • 浏览: 7159 次
  • 性别: Icon_minigender_1
  • 来自: 成都
文章分类
社区版块
存档分类
最新评论

Spring3.1 缓存cache配置

阅读更多
最近准备把spring3.1的缓存功能引入到系统中,正好做到数据字典(类似下拉菜单管理)需要用到缓存技术,于是初步使用了一把。
步骤:
1.必须引入ehcache-core-2.5.0.jar,同时spring的jar包需要升级到3.1
2.applicationContext.xml配置文件中需要加入
xmlns:p="http://www.springframework.org/schema/p"
xmlns:cache="http://www.springframework.org/schema/cache"
xsi:schemaLocation="
  http://www.springframework.org/schema/cache
          http://www.springframework.org/schema/cache/spring-cache.xsd"
3.applicationContext.xml配置
<!-- 缓存 -->
<cache:annotation-driven cache-manager="cacheManager"/>
<bean id="cacheManager" class="org.springframework.cache.ehcache.EhCacheCacheManager" p:cache-manager-ref="ehcache" />
<bean id="ehcache" class="org.springframework.cache.ehcache.EhCacheManagerFactoryBean" p:config-location="classpath:/ehcache.xml" />
4.
以下是service字典模块service缓存代码
//value对应ehcache.xml中配置的缓存名称,key是缓存的唯一标示,按照参数加方法名
//一般来说是唯一的
	@Cacheable(value="DICT_CACHE",key="#dictId + 'getSystemDictByDictId'")
	public SystemDict getSystemDictByDictId(String dictId){
		Search search = new Search().addFilterEqual("dictId", dictId);
		return systemDictDAO.searchUnique(search);
	}
	
	@Cacheable(value="DICT_CACHE",key="#parentDictId + 'getSystemDictByDictId'")
	public List<SystemDict> findSystemDictByParentDictId(String parentDictId){
		Search search = new Search().addFilterEqual("parentDictId", parentDictId);
		return systemDictDAO.search(search);
	}
	
	@Cacheable(value="DICT_CACHE",key="#parentDictId + #status + 'getSystemDictByDictId'")
	public List<SystemDict> findSystemDictByParentDictId(String parentDictId,Integer status){
		Search search = new Search().addFilterEqual("parentDictId", parentDictId);
			search.addFilterEqual("status", status);
		return systemDictDAO.search(search);
	}
//清除所有缓存,如果简单的话实际上可以加上需要清除哪些缓存,有针对性,但是不太好
//控制
	@CacheEvict(value="DICT_CACHE",allEntries=true)
	public void saveSystemDict(SystemDict systemDict){
		systemDictDAO.save(systemDict);
	}
	
	@CacheEvict(value="DICT_CACHE",allEntries=true)
	public void deleteSystemDict(String dictId){
		systemDictDAO.deleteSystemDict(dictId);
	}


4.ehcache.xml放到classpath根目录
<?xml version="1.0" encoding="UTF-8"?>
<ehcache xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  
    xsi:noNamespaceSchemaLocation="ehcache.xsd" updateCheck="true"  
    monitoring="autodetect">
    
    <diskStore path="java.io.tmpdir"/>
    
    <defaultCache
        maxElementsInMemory="10000"
        eternal="false"
        timeToIdleSeconds="120"
        timeToLiveSeconds="120"
        overflowToDisk="true"
        maxElementsOnDisk="10000000"
        diskPersistent="false"
        diskExpiryThreadIntervalSeconds="120"
        memoryStoreEvictionPolicy="LRU"
        />
     <cache
     	name="DICT_CACHE"
     	maxElementsInMemory="10000"
        eternal="true"
        overflowToDisk="true"
        maxElementsOnDisk="10000000"
        diskPersistent="false"
        /> 
</ehcache>


参考自网上其他几个相关帖子以及spring3.1文档,以上配置在我的工程中是可以正确运行的,如果有什么问题,欢迎留言。
分享到:
评论

相关推荐

    JAVA编程之spring cache本机缓存应用

    1、SpringCache是Spring提供的一个缓存框架,在Spring3.1版本开始支持将缓存添加到现有的spring应用程序中,在4.1开始,缓存已支持JSR-107注释和更多自定义的选项 2、Spring Cache利用了AOP,实现了基于注解的缓存...

    java之SpringCache之@Cacheable注解的说明使用

    在Spring3.1以后增加了一项happy的技术点,就是基于注解来实现缓存的技术。他的本质上不是具体的缓存方案实现,而是一个对缓存的抽象,让我们通过注解,实现少量的代码,达到实现缓存的方案。 Cacheable的说明 @...

    springMVC二级缓存配置

    Spring 3.1 引入了激动人心的基于注释(annotation)的缓存(cache)技术,它本质上不是一个具体的缓存实现方案(例如 EHCache 或者 OSCache),而是一个对缓存使用的抽象,通过在既有代码中添加少量它定义的各种 ...

    spring缓存ehcache

    从3.1开始,Spring引入了对Cache的支持。其使用方法和原理都类似于Spring对事务管理的支持。Spring Cache是作用在方法上的,其核心思想是这样的:当我们在调用一个缓存方法时会把该方法参数和返回结果作为一个键值对...

    Spring 缓存抽象示例详解

    Spring框架自身并没有实现缓存解决方案,但是从3.1开始定义了org.springframework.cache.Cache和org.springframework.cache.CacheManager接口,提供对缓存功能的声明,能够与多种流行的缓存实现集成。这篇文章主要...

    SpringBoot笔记-下篇.pdf

    org.springframework.cache.CacheManager接口来统一不同的缓存技术; 并支持使用JCache(JSR- 107)注解简化我们开发; • Cache接口为缓存的组件规范定义,包含缓存的各种操作集合; • Cache接 口下Spring提供了...

    SpringBoot2.0整合SpringCache和Redis.docx

    SpringBoot2.0整合SpringCache和Redis 1 1. SpringBoot对应(自带)RedisClient是不同的 1 2. 实战 1 2.1. maven配置 1 2.2. yml配置 1 2.3. RedisConfig配置 1 2.4. RedisController 2 3. Spring缓存注解@...

    springboot知识点整理

    2 Spring Boot配置 18 2.1 配置文件 18 2.2 YML语法 19 2.3 YML配置文件值获取 21 2.4 properties配置文件乱码问题 24 2.5 @ConfigurationProperties与@Value的区别 25 2.6 配置@PropertySource、@ImportResource、@...

    springboot-cache.zip

    Spring从3.1开始定义了org.springframework.cache.Cache和org.springframework.cache.CacheManager接口来统一不同的缓存技术;并支持使用JCache(JSR-107)注解简化我们开发;大家一起来学习cache的用法

    JavaEE开发的颠覆者SpringBoot实战[完整版].part3

    8.5 数据缓存Cache 309 8.5.1 Spring 缓存支持 309 8.5.2 Spring Boot 的支持 310 8.5.3 实战 312 8.5.4 切换缓存技术 319 8.6 非关系型数据库NoSQL 320 8.6.1 MongoDB 320 8.6.2 Redis 329 第9 章 Spring Boot 企业...

    JavaEE开发的颠覆者SpringBoot实战[完整版].part2

    8.5 数据缓存Cache 309 8.5.1 Spring 缓存支持 309 8.5.2 Spring Boot 的支持 310 8.5.3 实战 312 8.5.4 切换缓存技术 319 8.6 非关系型数据库NoSQL 320 8.6.1 MongoDB 320 8.6.2 Redis 329 第9 章 Spring Boot 企业...

    JavaEE开发的颠覆者SpringBoot实战[完整版].part1

    8.5 数据缓存Cache 309 8.5.1 Spring 缓存支持 309 8.5.2 Spring Boot 的支持 310 8.5.3 实战 312 8.5.4 切换缓存技术 319 8.6 非关系型数据库NoSQL 320 8.6.1 MongoDB 320 8.6.2 Redis 329 第9 章 Spring Boot 企业...

    spring security 参考手册中文版

    38. Spring Data&Spring安全配置 273 39. @Query中的安全表达式 273 第八部分 附录 274 40.安全数据库模式 274 40.1用户模式 274 40.1.1集团当局 274 40.2持久登录(记得我)架构 275 40.3 ACL模式 275 40.3.1 ...

    JavaEE开发的颠覆者 Spring Boot实战,多个地址免费下载,

    8.5 数据缓存Cache .... .............................. 309 8.6 非关系型数据库NoSQL .... ................ 320 8.6.1 MongoDB .... ............................. 320 8.6.2 Redis .... .........................

    spring boot 项目代码,直接启动本人编写的,里面包含PPT下载地址

    8.5 数据缓存Cache .... .............................. 309 8.6 非关系型数据库NoSQL .... ................ 320 8.6.1 MongoDB .... ............................. 320 8.6.2 Redis .... .........................

    JavaEE开发的颠覆者+Spring+Boot实战++完整版

    297 8.5 数据缓存Cache .... .............................. 309 8.6 非关系型数据库NoSQL .... ................ 320 8.6.1 MongoDB .... ............................. 320 8.6.2 Redis .... ....................

    Guns 技术文档 旗舰版v2.3.pdf

    3.8 工作流 3.9 日志记录 3.9.1 业务日志 3.9.2 异常日志 3.10 如何使用缓存 3.10.1 用工具类操作 3.10.2 用spring cache操作缓存 3.11 使用枚举 3.12 spring boot热部署 3.12.1 重新加载html 3.12.2 重新加载java类...

    mybatis学习笔记

    3.1 配置内容 24 3.2 properties(属性) 24 3.3 settings(配置) 25 3.4 typeAliases(类型别名) 26 3.4.1 mybatis支持别名: 26 3.4.2 自定义别名: 27 3.5 typeHandlers(类型处理器) 27 3.6 mappers(映射器...

    低清版 大型门户网站是这样炼成的.pdf

    5.8.5 hibernate的二级缓存配置 334 5.9 hibernate应用的性能优化 336 5.10 多数据源的应用 338 5.11 jdbc的应用 343 5.12 hibernate调用存储过程 343 5.13 xml数据持久化 346 5.14 小结 348 第6章 充分利用...

    MyEclipse_9创建SSH2开发环境必须的独立包

    c3p0-0.9.1.jar 是一个数据库连接池,Hibernate可以配置为使用C3PO连接池。如果准备用这个连接池,就需要这个jar包. dom4j-1.6.1.jar 用来读写XML文件的 ehcache-1.5.0.jar ehcache缓存 hibernate3.jar hibernate-...

Global site tag (gtag.js) - Google Analytics