`
rickycm
  • 浏览: 69963 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

开发项目中Ehcache

阅读更多
对EhCache的配置,我现在了解的有两种,但是我觉得这两种在我所接触到的地方却作用不大,可能是我自身技术问题,下面我具体说一下。
Ehcache主要是书写Ehcache.xml文件
在园区人才的项目中配置了三个.
<defaultCache name="com.berheley.parkrcfile.cache"
maxElementsInMemory="10000"
eternal="false"
timeToIdleSeconds="120"
timeToLiveSeconds="120"
overflowToDisk="true"
diskPersistent="false"
diskExpiryThreadIntervalSeconds="120"
memoryStoreEvictionPolicy="LRU"
/>
<cache name="org.hibernate.cache.UpdateTimestampsCache"
maxElementsInMemory="10000"
eternal="false"
timeToIdleSeconds="600"
timeToLiveSeconds="600"
overflowToDisk="false"
/>
<cache name="org.hibernate.cache.StandardQueryCache"
maxElementsInMemory="10000"
eternal="false"
timeToIdleSeconds="600"
timeToLiveSeconds="600"
overflowToDisk="false"
/>
第一个defaultCache name="com.berheley.parkrcfile.cache"
这个缓存用于配置着spring的缓存使用的是AOP的技术来对BO层的操作进行的缓存
配置方式:
<bean id="cacheManager" class="org.springframework.cache.ehcache.EhCacheManagerFactoryBean">
<property name="configLocation">
<value>classpath:ehcache.xml</value>
</property>
通过这个配置ehcache.xml的路径是存放在classpath的根目录
<bean id="methodCache" class="org.springframework.cache.ehcache.EhCacheFactoryBean">
<property name="cacheManager">
<ref local="cacheManager"/>
</property>
<property name="cacheName">
<value>com.berheley.cache.METHOD_CACHE</value>
</property>
</bean>
设置EhCacheFactory,我觉得这里配置的有些问题
<property name="cacheName">
<value>com.berheley.cache.METHOD_CACHE</value>
</property>
我认为这里应该配置的是Ehcache.xml中使用的哪个Cache,应该value值为
com.berheley.parkrcfile.cache,希望大家看下对吗
<bean id="readCacheInterceptor" class="com.berheley.parkrcfile.interceptor.ReadCacheInterceptor">
<property name="cache">
<ref local="methodCache" />
</property>
</bean>
<bean id="setCacheNullInterceptor" class="com.berheley.parkrcfile.interceptor.SetCacheNullInterceptor">
<property name="cache">
<ref local="methodCache" />
</property>
</bean>
接下来使用的是AOP技术配置了两个拦截器
<bean id="readCachePointCut" class="org.springframework.aop.support.RegexpMethodPointcutAdvisor">
<property name="advice">
<ref local="readCacheInterceptor"/>
</property>
<property name="patterns">
<list>
<value>.*getCategoryTree</value>
<value>.*queryAll</value>
</list>
</property>
</bean>
<bean id="setCacheNullPointCut" class="org.springframework.aop.support.RegexpMethodPointcutAdvisor">
<property name="advice">
<ref local="setCacheNullInterceptor"/>
</property>
<property name="patterns">
<list>
<value>.*add</value>
<value>.*save</value>
<value>.*update</value>
<value>.*Down</value>
<value>.*delete</value>
<value>.*Up</value>

</list>
</property>
</bean>
接着配置了两个切入点的通知,拦截器的两个类是自己实现的,大致的内容为如果使用.*getCategoryTree、queryAll这两个方法则将信息放入缓存中。如果使用.*add等方法时则不使用缓存。
整个过程是这样,但是我觉得在我们的项目中凡是取得所有的值的情况大多都是valuelist完成的,那么valuelist会调用缓存吗,难道他也有queryAll这个方法吗?不解配置了这个又有什么地方会去用这些。
第二个配置hibernate的二级缓存。
第一个cache:org.hibernate.cache.UpdateTimestampsCache
第二个cache:org.hibernate.cache.StandardQueryCache
这两个是用于配置hibernate的二级缓存
<prop key="hibernate.cache.provider_class">
org.hibernate.cache.EhCacheProvider
</prop>
<prop key="hibernate.cache.use_query_cache">true</prop>
在使用中的配置可能是这个地方,但是我不清楚希望高手能给指点下。
hibernate的二级缓存配置一直不是很清楚。
但是我在学习时发现hibernate的二级缓存需要在配置清楚后在dao里进行使用才可以,可是咱们的项目dao是统一的并没有二级缓存的使用,那么配置2级缓存起到什么作用了呢?
ps:学习中的小问题,希望大家解决。
分享到:
评论

相关推荐

    ehcache开发工具包

    标题中的"ehcache开发工具包"指的是用于集成和管理EhCache的资源集合,通常包含EhCache的JAR库文件、相关的配置文件和版本信息等。在给定的压缩包中,我们看到有以下四个文件: 1. `ehcache-1.6.2.jar`: 这是...

    项目优化之Ehcache页面缓存

    Ehcache是一款高效、流行的Java缓存库,它在项目优化中扮演着重要角色,尤其在处理前端页面缓存方面。本文将深入探讨Ehcache的工作原理、优势、配置以及如何将其应用于页面缓存,同时结合提供的代码案例和文档,帮助...

    ehcache项目缓存技术

    在实际开发中,Ehcache的使用通常分为以下步骤: 1. **引入依赖**:在Maven或Gradle的配置文件中添加Ehcache的依赖库。 2. **配置缓存**:创建XML配置文件,定义缓存的大小、过期策略等属性。 3. **创建缓存管理...

    SpringBoot 集成Ehcache实现缓存

    在Spring Boot项目中集成Ehcache可以显著提高系统的响应速度和性能。下面将详细介绍如何在一个Spring Boot项目中集成并使用Ehcache缓存。 ##### 1. 创建项目 首先,使用IDEA创建一个Maven类型的Spring Boot项目。...

    mybatis ehcache 整合中文文档

    本文将详细介绍如何在MyBatis项目中集成EHCache,包括安装配置、基本用法以及一些高级特性。 #### 二、基础知识 **1. MyBatis简介** MyBatis是一款优秀的持久层框架,它支持定制化SQL、存储过程以及高级映射。...

    hibernate整合ehcache的jar包.zip

    通过配置,Hibernate可以在查询数据库之前先查看Ehcache中是否有所需数据,如果存在,就直接返回,无需再次访问数据库,这样显著减少了数据库的负载。 **4. 整合步骤** - **添加依赖**:在项目中引入Ehcache的jar包...

    ehcache.xsd_ehcache.xml代码提示.rar

    【标题解析】:“ehcache.xsd_ehcache.xml代码提示.rar”这个标题表明这是一个与Ehcache缓存系统相关的资源包,主要目的是为Ehcache的...在实际开发中,合理利用这样的工具和资源,可以显著提升项目质量和开发体验。

    Maven项目Spring4+Hibernate4+shiro+Ehcache项目集成

    在本项目中,我们主要探讨的是一个基于Maven构建的Java Web应用,它整合了Spring 4、Hibernate 4、Apache Shiro以及Ehcache等多个关键框架,旨在实现用户角色菜单管理的功能。以下是对这些技术及其集成应用的详细...

    基于Java的实例开发源码-ehcache(Java缓存框架 EhCache).zip

    通过这个压缩包中的实例源码,你可以深入理解EhCache的工作原理,以及如何在实际项目中使用它。通过阅读和运行这些代码,你将更好地掌握EhCache的配置、缓存管理和使用技巧,提升你的Java开发能力。

    ehcache资料(包含ehcache jar包)

    在实际开发中,Ehcache可以和Spring、Hibernate等框架无缝集成,进一步简化缓存管理。例如,使用Spring的缓存抽象层,可以将Ehcache作为底层缓存实现,无需直接操作Ehcache API。 总结来说,Ehcache是Java缓存领域...

    maven整合ssh框架、ehcache搭建、可直接运行导入运行

    SSH框架是Java开发中常用的三大框架,分别是Spring、Struts和Hibernate的组合,它们为开发者提供了强大的企业级应用开发能力。Maven是一个项目管理工具,它可以帮助我们管理和构建Java项目,而Ehcache则是一个广泛...

    Ehcache(2): Ehcache实例在Eclipse中的配置 改进

    本篇文章将详细讲解如何在Eclipse集成开发环境中配置Ehcache,以配合Hibernate进行使用,从而提升数据访问效率。首先,我们需要了解Ehcache的基本概念和工作原理。 Ehcache的核心功能是提供内存缓存服务,它分为三...

    Ehcache(一): Spring + Ehcache开场白

    集成Ehcache,首先需要在项目中添加Ehcache的相关依赖。这通常包括ehcache-core或ehcache-spring-annotations库,如果需要分布式缓存功能,还需引入terracotta-ehcache-server或相关的分布式缓存服务。 配置Ehcache...

    ehcache 测试 反射类 例子

    在这个“ehcache测试反射类例子”中,我们将探讨如何结合使用Ehcache和Java的反射机制。 首先,让我们理解Ehcache的核心概念。Ehcache提供了一个内存缓存系统,允许我们在内存中存储对象,这样当需要这些对象时,...

    hibernate+ehcache

    在实际项目中,Dorm 可能代表“Data Object Representation Model”,即数据对象表示模型,用于与数据库交互的对象。 10. **最佳实践**:在实际开发中,需要根据业务场景选择合适的数据缓存策略,避免过度依赖缓存...

    ehcache缓存入门项目

    EhCache是一个开源的、高性能的Java缓存框架,它被广泛用于提高应用...通过这个“ehcache缓存入门项目”,你可以深入了解EhCache的使用,并结合提供的EhCacheTest案例进行实践,进一步掌握EhCache在实际开发中的应用。

    spring+ehcache实例demo

    Ehcache最初是由Greg Luck于2003年开始开发。2009年,该项目被Terracotta购买。软件仍然是开源,但一些新的主要功能(例如,快速可重启性之间的一致性的)只能在商业产品中使用,例如Enterprise EHCache and BigMemory。...

    Spring+Ehcache集成

    本篇文章将详细介绍如何在Spring项目中集成Ehcache,以及如何通过Spring的AOP(面向切面编程)实现方法级别的缓存注解。 首先,我们需要在项目中引入Ehcache的依赖。通常,这可以通过在`pom.xml`文件中添加Maven...

    springmvc+ehcache 实例

    这样,当方法被调用时,其结果会被自动存储到Ehcache中。 5. **清除缓存**:如果需要手动清除缓存,可以使用`@CacheEvict`注解。这在数据更新或删除时特别有用,以确保缓存中的数据与数据库保持同步。 在"项目下载...

Global site tag (gtag.js) - Google Analytics