spring中缓存配置

缓存spring文件的配置:

<?xml version="1.0" encoding="UTF-8"?>

<beans xmlns="http://www.springframework.org/schema/beans"

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:aop="http://www.springframework.org/schema/aop"

xmlns:context="http://www.springframework.org/schema/context" xmlns:tx="http://www.springframework.org/schema/tx"

xmlns:cache="http://www.springframework.org/schema/cache"

xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd

http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd

http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd

http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx.xsd

http://www.springframework.org/schema/cache

http://www.springframework.org/schema/cache/spring-cache-3.2.xsd"

default-lazy-init="true">

<!-- Activates scanning of @Service -->

<context:component-scan base-package="zyl.mybatisspring.**.service" />

<!-- 缓存配置 -->

<!-- 启用缓存注解功能(请将其配置在Spring主配置文件中) -->

<cache:annotation-driven cache-manager="cacheManager" />

<!-- Spring自己的基于java.util.concurrent.ConcurrentHashMap实现的缓存管理器(该功能是从Spring3.1开始提供的) -->

<!-- <bean id="cacheManager" class="org.springframework.cache.support.SimpleCacheManager">

<property name="caches"> <set> <bean name="myCache" class="org.springframework.cache.concurrent.ConcurrentMapCacheFactoryBean"/>

</set> </property> </bean> -->

<!-- 若只想使用Spring自身提供的缓存器,则注释掉下面的两个关于Ehcache配置的bean,并启用上面的SimpleCacheManager即可 -->

<!-- Spring提供的基于的Ehcache实现的缓存管理器 -->

<bean id="cacheManagerFactory"

class="org.springframework.cache.ehcache.EhCacheManagerFactoryBean">

<property name="configLocation" value="classpath:ehcache.xml" />

</bean>

<bean id="cacheManager" class="org.springframework.cache.ehcache.EhCacheCacheManager">

<property name="cacheManager" ref="cacheManagerFactory" />

</bean>

</beans>

注意点:

1、在哪层使用,就在哪层进行配置。大部分都是在Service层进行使用的,所以cache的配置应该写在Service层的配置文件中,如果每层的文件不是分的很清晰,那么cache的配置还是和Service的注解配置放在一块比较好。

2、使用缓存时有两种配置方法,一种是使用spring3.1 后自带的cache机制,另一种就是引入专门的缓存技术,例如Ehcache,配置方法见上面的详细配置及说明。

3、在Service层使用缓存注解时,value值必须是spring配置文件或者ehcache配置中cache名称,可以配置多个名称。

4、正确使用@Cacheable、@CachePut、@CacheEvict 注释

详细内容可以参考:http://www.ibm.com/developerworks/cn/opensource/os-cn-spring-cache/

如果使用ehcache进行配置,那么 Ehcache.xml的配置示例:

<?xml version="1.0" encoding="UTF-8"?>

<ehcache dynamicConfig="false" monitoring="off" updateCheck="false"

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="ehcache.xsd">

<!-- 定义缓存策略

eternal="false"                 // 元素是否永恒,如果是就永不过期(必须设置)

maxEntriesLocalHeap="1000"      // 堆内存中最大缓存对象数,0没有限制(必须设置)

overflowToDisk="false"          // 当缓存达到maxElementsInMemory值是,是否允许溢出到磁盘(必须设置)

diskPersistent="false"          // 磁盘缓存在VM重新启动时是否保持(默认为false)

timeToIdleSeconds="0"           // 导致元素过期的访问间隔(秒为单位). 当eternal为false时,这个属性才有效,0表示可以永远空闲,默认为0

timeToLiveSeconds="600"         // 元素在缓存里存在的时间(秒为单位). 0 表示永远存在不过期

memoryStoreEvictionPolicy="LFU" // 当达到maxElementsInMemory时,如何强制进行驱逐默认使用"最近使用(LRU)"策略,其它还有先入先出FIFO,最少使用LFU,较少使用LRU

-->

<defaultCache eternal="false" maxEntriesLocalHeap="0" timeToIdleSeconds="300" timeToLiveSeconds="300"/>

<cache name="myCache" maxEntriesLocalHeap="1000" />

</ehcache>

时间: 2024-10-23 13:33:27

spring中缓存配置的相关文章

c3p0在spring中的配置

在大家的开发和学习当中应该经常用到数据库的连接和使用,不过连接 的方式就有很多种方式了,比方说用最最简单的JDBC 也好,还有用比 较复杂一点的就是数据库连接池,当然还有使用DBCP的连接的,各种方 法有各种方法的优势面和缺点,这据需要我们根据具体情况具体分析了 ,比方说要是一个并不是很大的项目的话,而且 使用的硬件机器的性 能也不是非常好的话,估计就没有必要使用数据库连接池了,毕竟连接 池平时总是管理着连接, 就会极大的占用这机器的运行性能和效率. (这里的C3P0的使用是基于Spring框架

Velocity初探小结--Velocity在spring中的配置和使用

最近正在做的项目前端使用了Velocity进行View层的数据渲染,之前没有接触过,草草过了一遍,就上手开始写,现在又回头细致的看了一遍,做个笔记. velocity是一种基于java的模板引擎技术,有点类似与JSP,它允许页面设计者引用Java中定义的方法.前端页面设计者和后端Java开发者能够同时使用MVC的模式开发网站,这样前端能够把精力放在页面的设计上,后端也可以把精力放在代码开发上.Velocity把Java代码从Web页面中分离, 使网站可维护性更强. 注:项目使用的是Spring+

spring中xml配置和autowired混用

1.类的混用: 配置文件中的配置: <bean id="a" class="com.ab.cc.A" /> 类中的配置 @Autowired A a; 这样的好处,可以少掉get/set方法 [email protected]和@Resource的区别 Autowired默认是根据byType自动装配,所以有多个类型的xml或者注解某个类的时候,会报错,这时候可以再添加@Qualifier注解,指定名称.这个是spring自带的,换框架的时候,要spri

关于spring中注解配置的问题

今天写spring的时候,想用注解配置,但不巧的是用Junit工具测试的时候出错了,检查了很久的代码,发现并不是代码的问题,那就有些奇怪了. 后来去百度,回答的奇奇怪怪,和我的问题沾边的不多,最后还是FQ找到的答案,废话不多说,先贴出错误提示: org.springframework.beans.factory.BeanDefinitionStoreException: Unexpected exception parsing XML document from class path resou

django中缓存配置

# ======缓存配置====== CACHES = { ## 虚拟缓存,开发调试版本,此为开始调试用,实际内部不做任何操作 # 'default': { # 'BACKEND': 'django.core.cache.backends.dummy.DummyCache', # 引擎 # 'TIMEOUT': 300, # 缓存超时时间(默认300秒,None表示永不过期,0表示立即过期) # 'OPTIONS':{ # 'MAX_ENTRIES': 300,# 最大缓存个数(默认300) #

spring-logger spring中日志配置

默认日志 Logback:默认情况下,Spring Boot会用Logback来记录日志,并用INFO级别输出到控制台.在运行应用程序和其他例子时,你应该已经看到很多INFO级别的日志了. 从上图可以看到,日志输出内容元素具体如下: 时间日期:精确到毫秒日志级别:ERROR, WARN, INFO, DEBUG or TRACE进程ID分隔符:— 标识实际日志的开始线程名:方括号括起来(可能会截断控制台输出)Logger名:通常使用源代码的类名日志内容添加日志依赖假如maven依赖中添加了spr

Spring中Hibernate配置笔记

ApplicatonContext.xml中的配置: <jee:jndi-lookup id="dataSource" jndi-name="java:comp/env/global/ds" /> <bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean"> <proper

浅析redis缓存 在spring中的配置 及其简单的使用

一:如果你需要在你的本地项目中配置redis.那么你首先得需要在你的本地安装redis 参考链接[http://www.runoob.com/redis/redis-install.html] 下载redis在网上有很多 我这里就不多做解释了 下载以后 找到这样的三个文件  这是我们需要操作的 每个版本可能不一样 但这几个肯定是有的 然后 安装这个http://www.runoob.com/redis/redis-install.html 进行配置 当然很重要的一步是你需要在 redis.win

spring中bean配置和bean注入

1 bean与spring容器的关系 Bean配置信息定义了Bean的实现及依赖关系,Spring容器根据各种形式的Bean配置信息在容器内部建立Bean定义注册表,然后根据注册表加载.实例化Bean,并建立Bean和Bean的依赖关系,最后将这些准备就绪的Bean放到Bean缓存池中,以供外层的应用程序进行调用. 1 bean配置 bean配置有三种方法: 基于xml配置Bean 使用注解定义Bean 基于java类提供Bean定义信息 1.1 基于xml配置Bean 1.2 使用注解定义Be