以EhCache为例说明缓存的配置方法:
第一种方法,配置Spring配置文件,使用AOP处理缓存
1)添加Provider,初始化CacheManager
Xml代码
<!--
Thecreatedcachemanagerisaninstanceofnet.sf.ehcache.CacheManager
-->
<beanidbeanid="cacheManager"
class="org.springframework.cache.ehcache.EhCacheManagerFactoryBean">
</bean>
<beanidbeanid="cacheProviderFacade"
class="org.springmodules.cache.provider.ehcache.EhCacheFacade">
<propertynamepropertyname="cacheManager"ref="cacheManager"/>
</bean>
<!--
Thecreatedcachemanagerisaninstanceofnet.sf.ehcache.CacheManager
-->
<beanid="cacheManager"
class="org.springframework.cache.ehcache.EhCacheManagerFactoryBean">
</bean>
<beanid="cacheProviderFacade"
class="org.springmodules.cache.provider.ehcache.EhCacheFacade">
<propertyname="cacheManager"ref="cacheManager"/>
</bean> 2)在ehcache.xml增加一个缓存
增加一个name为testCache的缓存。
Xml代码
<cache name="testCache"
maxElementsInMemory="20000"
maxElementsOnDisk="1000"
eternal="true"
overflowToDisk="true"
memoryStoreEvictionPolicy="LFU"
/>
<cache name="testCache"
maxElementsInMemory="20000"
maxElementsOnDisk="1000"
eternal="true"
overflowToDisk="true"
memoryStoreEvictionPolicy="LFU"
/>3)配置缓存
Xml代码
<bean id="testService"
class="org.springmodules.cache.interceptor.proxy.CacheProxyFactoryBean">
<property name="cacheProviderFacade" ref="cacheProviderFacade" />
<property name="cachingModels">
<props>
<prop key="find*">cacheName=<STRONG>testCache(a)</STRONG></prop>
<prop key="is*">cacheName=testCache</prop>
</props>
</property>
<property name="flushingModels">
<props>
<prop key="insert*">cacheNames=testCache</prop>
<prop key="delete*">cacheNames=testCache</prop>
<prop key="update*">cacheNames=testCache</prop>
</props>
</property>
<property name="target" ref="<STRONG>testServiceTarget(b)</STRONG>" />
</bean>
<bean id="testService"
class="org.springmodules.cache.interceptor.proxy.CacheProxyFactoryBean">
<property name="cacheProviderFacade" ref="cacheProviderFacade" />
<property name="cachingModels">
<props>
<prop key="find*">cacheName=testCache(a)</prop>
<prop key="is*">cacheName=testCache</prop>
</props>
</property>
<property name="flushingModels">
<props>
<prop key="insert*">cacheNames=testCache</prop>
<prop key="delete*">cacheNames=testCache</prop>
<prop key="update*">cacheNames=testCache</prop>
</props>
</property>
<property name="target" ref="testServiceTarget(b)" />
</bean>
其中(a)为第2步定义的cache的名字,(b)为需要缓存的bean的id。
这样,第一种方式就配置好了。
第二种方法,使用Annotations的配置方式。
1)同第一种方法1)。
2)同第二种方法2)。
3)在需要处理缓存的方法前面配置Annotion
@Cacheable(modelId="testCache")//写在方法前面就会缓存方法的返回结果
@CacheFlush(modelId="testFlushing")//写在方法前面,就会在执行该函数时清除缓存里面的数据。
这样第二种方法也完成了。
第一种方法在flush的时候可以同时flush多个缓存。第二种方法只能flush一个缓存,而且第一种方法只需要修改Spring配置文件即可。
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/pengchua/archive/2009/08/02/4401136.aspx
分享到:
相关推荐
需要在Spring配置中声明所使用的缓存 provider。例如,如果选择EhCache作为缓存管理器,需要添加对应的bean定义,并配置相关的属性,如缓存的名称、大小限制等。 3. **使用缓存注解**: - `@Cacheable`:此注解...
最后,不要忘记在Spring配置文件中启用AOP和切面扫描。 ```xml 你的包名"/> ``` 总结起来,通过Spring Modules和Spring AOP,我们可以优雅地在Spring应用中集成EHCache,实现方法级别的缓存。这不仅能提升应用...
Spring 缓存机制的实现主要有两种方法:使用 Spring 与 Ehcache 结合,使用注解的方式对指定的方法进行缓存;封装 Guava 缓存,使用 Guava 包中的缓存机制。 方法一:使用 Spring 与 Ehcache 结合 使用 Spring 与 ...
在Spring配置文件中,我们需要启用缓存管理和指定使用的缓存管理器。例如,如果我们使用Ehcache,我们需要配置EhcacheManager,并声明缓存的bean。 7. **Web应用集成** 在Web应用程序中,缓存通常需要考虑到并发...
8. **异常处理**:当方法抛出异常时,Spring Cache可以配置是否将异常信息也存入缓存,或者是否清除已有的缓存项。 通过理解并应用上述概念和策略,你可以灵活地控制Spring Cache的行为,以优化应用程序性能,特别...
3. **Spring配置**:在Spring的配置文件(如`applicationContext.xml`)中,启用缓存支持并指定缓存管理器。使用`<cache:annotation-driven/>`元素开启基于注解的缓存控制,并通过`<bean>`标签配置EhCache的`...
在企业级Java应用开发中,Spring和Hibernate是两个非常重要的框架。Spring作为一个全面的轻量级容器,负责管理对象的生命周期和依赖...通过优化缓存配置和策略,可以在不牺牲数据一致性的情况下,达到良好的用户体验。
**Spring缓存配置详解** 在Java Web开发中,Spring框架以其强大的功能和灵活性深受开发者喜爱。其中,Spring的缓存管理是提升应用性能的关键部分,它允许我们将经常访问但变化不频繁的数据存储在内存中,以减少对...
当方法被调用时,Spring会检查缓存中是否存在对应的结果,如果存在则直接返回,无需再次执行方法;如果不存在,执行方法并将结果存入缓存。 2. **@CacheEvict**:此注解用于清除缓存。当某个操作完成后,可能需要...
总的来说,基于Spring的Web缓存涉及到Spring框架的缓存抽象、注解驱动的缓存逻辑、Maven依赖管理和实际缓存实现的选择与配置。理解并熟练掌握这些知识点,将有助于构建高性能、低延迟的Web应用。开发者需要考虑缓存...
然后,我们需要在Spring的配置文件(如`application.properties`或`application.yml`)中设置Redis服务器的连接信息,包括主机名、端口、密码等。 接下来,通过Spring的缓存注解(如`@Cacheable`、`@CacheEvict`、`...
当我们谈论“Spring + Ehcache + Redis”两级缓存时,我们实际上是在讨论如何在Java环境中利用Spring框架来集成Ehcache作为本地缓存,并利用Redis作为分布式二级缓存,构建一个高效且可扩展的缓存解决方案。...
在Spring配置文件中,我们需要启用缓存管理器并配置所使用的缓存技术。例如,使用EhCache时,需要添加EhCache的依赖,并在配置中声明`CacheManager`,以及定义缓存的配置元素。 3. **缓存属性**: - `key`:定义...
2. 配置缓存管理器:在Spring配置文件中定义`CacheManager`,设置缓存提供商和配置参数。 3. 配置缓存:使用`@EnableCaching`开启缓存支持,并通过`@CacheConfig`注解设置全局缓存配置。 4. 使用注解:在需要缓存的...
Spring框架与EhCache的结合,为开发者提供了一种高效、易用的缓存解决方案。本文将深入探讨Spring如何与EhCache协同工作,以及如何在实际项目中实施和配置。 **1. EhCache简介** EhCache是Java的一个开源、高性能...
本篇文章将详细探讨如何在Spring框架中集成并实现基于方法的缓存机制,利用Ehcache来优化数据访问。 首先,我们需要理解Spring的AOP概念,AOP允许我们定义横切关注点,如日志、事务管理或,正如在这个案例中,缓存...
总结来说,Spring的二级缓存配置涉及多个层面,包括引入缓存库、设置缓存策略、配置Spring以及在业务代码中使用注解。合理利用二级缓存,能够有效提升系统的响应速度,降低数据库压力,但同时也需要注意缓存的维护和...
在`filter`方法中,我们不能直接在Filter内部缓存Body,因为响应式流只能读取一次。我们需要在异步操作的链路上缓存Body。对于JSON Body,我们可以读取并转换为字符串,而对于FormData,我们需要将其转换为`...
Spring 3.0 提供了两种事务管理配置方法:基于 XML 的事务管理和基于 @Transactional 的事务管理,这两种方法都是为了实现事务管理的目标,分别具有不同的配置方式和优缺点。 基于 XML 的事务管理 这种方法不需要...
Spring 3.1引入了一种统一的缓存抽象,它允许开发者在不关心具体缓存实现的情况下,轻松地在应用程序中引入缓存功能。这种抽象包括了注解、接口和配置元素,使得缓存的使用变得简单。 2. **注解驱动的缓存** - `@...