实际使用中,发现pharos底层的table_info表和users表的读操作过于频繁,因此为它们增加二级缓存,以提高性能
0.首先修改hibernate.properties文件,
增加
hibernate.cache.provider_class=net.sf.hibernate.cache.EhCacheProvider
hibernate.cache.use_query_cache=true
1.修改endbran/src/java/ehcache.xml,增加如下内容:
<cache name="com.vtradex.endbrain.model.TableInfo"
maxElementsInMemory="1000"
eternal="true"
timeToIdleSeconds="86400"
timeToLiveSeconds="86400"
overflowToDisk="true"
/>
<cache name="com.vtradex.endbrain.model.TableInfo.excludedColumns"
maxElementsInMemory="1000"
eternal="true"
timeToIdleSeconds="86400"
timeToLiveSeconds="86400"
overflowToDisk="true"
/>
<cache name="com.vtradex.bedrock.model.security.User"
maxElementsInMemory="1000"
eternal="true"
timeToIdleSeconds="86400"
timeToLiveSeconds="86400"
overflowToDisk="true"
/>
<cache name="com.vtradex.bedrock.model.security.User.roles"
maxElementsInMemory="1000"
eternal="true"
timeToIdleSeconds="86400"
timeToLiveSeconds="86400"
overflowToDisk="true"
/>
<cache name="com.vtradex.bedrock.model.security.User.groups"
maxElementsInMemory="1000"
eternal="true"
timeToIdleSeconds="86400"
timeToLiveSeconds="86400"
overflowToDisk="true"
/>
<cache name="com.vtradex.bedrock.model.security.User.authorizations"
maxElementsInMemory="1000"
eternal="true"
timeToIdleSeconds="86400"
timeToLiveSeconds="86400"
overflowToDisk="true"
/>
2.修改com/vtradex/endbrain/dao/hibernate/tableInfo.hbm.xml
2.1在class定义下加入
<cache usage="nonstrict-read-write"/>
2.2在<set name="excludedColumns" table="TABLE_COLUMN">
下加入
<cache usage="read-write"/>
3.修改com.vtradex.endbrain.dao.hibernate.HibernateTableInfoDao
在getTableInfoByIdentity方法和getTableInfosByPage方法中
增加
setCacheable(true)
setCacheRegion("com.vtradex.endbrain.model.TableInfo")
4.修改com/vradex/bedrock/dao/security/hibernate/user.hbm.xml
4.1在class定义下加入
<cache usage="nonstrict-read-write"/>
4.2在 <set name="roles" table="USER_ROLE" lazy="true" cascade="save-update">
<set name="groups" table="GROUP_USER" lazy="true" inverse="true">
<set name="authorizations" table="USER_AUTHORIZATION" lazy="true" inverse="true" cascade="all-delete-orphan">
下分别加入
<cache usage="read-write"/>
5.修改com.vtradex.bedrock.dao.security.hibernate.HibernateUserDao
在getUserByLoginName方法中
增加
setCacheable(true)
setCacheRegion("com.vtradex.bedrock.model.security.User")
分享到:
相关推荐
当我们谈论“Spring + Ehcache + Redis”两级缓存时,我们实际上是在讨论如何在Java环境中利用Spring框架来集成Ehcache作为本地缓存,并利用Redis作为分布式二级缓存,构建一个高效且可扩展的缓存解决方案。...
作为进程内缓存解决方案,EhCache能够在应用程序运行时存储数据,显著提高数据访问速度,减轻数据库负载,从而提升整体系统性能。 EhCache的核心功能包括: 1. **内存管理**:EhCache将数据存储在内存中,提供了对...
Ehcache是一个高性能的、基于Java的进程内缓存解决方案,它被广泛应用于各种Java应用程序,包括Java EE和轻量级容器。Ehcache的主要优势在于它的快速响应、易用性和丰富的缓存策略。它提供了两种级别的缓存存储:...
由于其简单易用且功能强大,EhCache 成为了 Java 应用程序中常用的缓存解决方案之一。特别是对于单机应用而言,EhCache 是一个理想的二级缓存选择。在Hibernate框架中,EhCache被作为内置缓存插件支持,这使得开发者...
EHcache是一款广泛使用的开源Java缓存解决方案,它不仅支持本地缓存,还支持分布式缓存。在Hibernate中,EHcache作为二级缓存插件,提供了一种高效且可扩展的缓存策略。它具有内存和磁盘存储两种方式,当内存中的...
Ehcache是一款开源的、高性能的Java缓存解决方案,它被广泛应用于各种Java应用中。Ehcache支持本地缓存和分布式缓存,可以方便地集成到Spring、Hibernate等框架中。其核心特性包括内存和磁盘存储、缓存过期策略、...
Ehcache是一个开源的、高性能的缓存解决方案,广泛应用于Java应用程序中,以提高数据访问的速度和效率。本文将深入探讨Ehcache的简单监控,帮助开发者更好地理解其工作原理和性能状态。 首先,了解Ehcache的核心...
Ehcache是一个广泛使用的开源Java缓存库,它提供了内存和磁盘存储的缓存解决方案,适用于提高应用程序性能和减少数据库负载。在Java应用中,尤其是在Spring框架中,Ehcache常被用作二级缓存,以提升数据访问速度。...
Ehcache是一种广泛使用的开源Java分布式缓存系统,它为高性能应用程序提供了内存存储和缓存解决方案。在Java世界中,尤其是在持久化框架如Hibernate的使用中,Ehcache扮演了至关重要的角色。由于数据库查询通常会...
Ehcache作为一款强大的缓存解决方案,为Java开发者提供了高效的数据缓存手段,能够有效提升系统性能,减轻数据库压力。理解并熟练运用Ehcache,是优化企业级应用性能的关键一步。在实际项目中,根据业务需求选择合适...
然而,对于多线程和分布式环境,二级缓存可能导致数据一致性问题,因此需要谨慎使用,并可能需要引入分布式缓存来解决一致性问题。 分布式缓存,例如在集群环境中,涉及到多个应用实例和JVM之间的数据共享。通过...
- **缓存扩展**: Ehcache 可以与其他缓存解决方案集成,如 Hibernate 的二级缓存。 ### 5. Ehcache 源码分析 深入学习 Ehcache 源码有助于理解其工作原理。主要关注以下几个关键类: - **Cache**: 实现缓存逻辑的...
Java 两级缓存框架的设计与实现是为了解决在高并发场景下,应用程序对数据访问效率和性能的需求。这样的框架通常包括本地缓存(一级缓存)和远程分布式缓存(二级缓存)。在这个场景中,`ehcache(Caffeine)` 作为一...
Ehcache是一种广泛使用的开源缓存解决方案,它支持内存和磁盘存储,并提供了丰富的API和配置选项。在Hibernate中集成Ehcache作为二级缓存,能够进一步提升数据读取速度,尤其是在高并发场景下。 首先,我们需要在...
基于ehcache的缓存器是一种常见的解决方案,它能够在内存中存储常用数据,减少对数据库的访问,从而有效缓解服务器压力。 **一、Ehcache介绍** Ehcache是一款开源的Java缓存框架,最初由Greg L. Turnquist创建,现...
Ehcache 是一款广泛使用的开源Java缓存解决方案,它可以用于存储页面、对象和数据,以提升应用程序的性能和响应速度。Ehcache 提供了内存和磁盘存储的支持,并且包含多种淘汰策略,如LRU(Least Recently Used)、...
为了解决这一问题,Hibernate提供了二级缓存机制。在这个“Hibernate4二级缓存Ehcache案例”中,我们将深入探讨如何利用Ehcache作为Hibernate的二级缓存提供商,以提升应用性能。 首先,我们需要了解什么是二级缓存...
Ehcache是Hibernate常用的二级缓存解决方案,它可以提高应用程序的性能和响应速度。这篇博客文章“hibernate缓存ehcache用法”可能详细介绍了如何在Hibernate中配置和使用Ehcache。 首先,我们需要理解什么是缓存。...
其卓越的稳定性和丰富的特性使其成为Java领域内最受欢迎的缓存解决方案之一。Ehcache能够无缝支持从小型单机部署到大规模分布式环境下的TB级数据缓存需求,展现出其强大的适应性和灵活性。 Ehcache由Terracotta公司...
通过以上步骤,你就可以在Spring Boot应用中成功集成并使用EhCache作为缓存解决方案。EhCache的配置可以根据实际需求进行调整,比如设置缓存过期时间、大小限制、缓存策略等。同时,EhCache还支持与其他缓存相关的...