.net
有基于方法的缓存,对程序员很友好,加个
annotation
就搞定。于是想提供一个
java
版,也就是使用
spring
的
aop+ehcache
,代码很少,
2
个类就搞定,一个
Interceptor
,一个自定义的
annotation
,然后是
spring
配置文件
+ehcache
配置文件。
Spring AOP
配置实用的BeanNameAutoProxyCreator,当然还可以使用
aspectj
的
aop
配置。
Interceptor
的
invork
方法先看是否有
MethodCache
注解,如果有,读取注解的
cacheName
,然后找到对应的
cache
。用类名、方法名和参数构造一个
String
的
key
,将方法返回值作为
cache
值,放入
cache
。如果再调用相同的方法及参数,就从
cache
中获取。
这样,对原有接口没有侵入,可以随时增加注解配置成有缓存方式,而且方便使用
ehcache
等缓存设施,可以控制超时、缓存数量等。还是那句话:开发用的爽才是真的好!
附件是标准的maven项目,mvn eclipse:eclipse就搞定,运行MethodCacheTest看效果
分享到:
相关推荐
Redis作为二级缓存是数据库系统优化的一个重要策略,特别是在高并发、大数据量的场景下,可以显著提升应用性能。在Mybatis中,二级缓存是一个跨Mapper共享的区域,用于存储查询结果,避免了重复查询数据库,从而降低...
"springMybatis+redis三级缓存框架"是一个高效且灵活的解决方案,它将MyBatis的二级缓存与Redis相结合,形成一个三级缓存体系,以优化数据读取速度并减轻数据库压力。 首先,MyBatis作为一款轻量级的持久层框架,其...
以Ehcache为例,它是Hibernate常用的一种二级缓存解决方案,提供了内存和磁盘两层缓存,支持自动过期策略,确保数据的实时性。 配置二级缓存主要包括以下几个步骤: 1. 引入依赖:在项目的pom.xml或build.gradle...
本文将深入探讨两种常见的缓存方案——ASimpleCache和SharedPreferences,并结合实际应用来解析它们的工作原理、优缺点以及如何在Android开发中有效地使用它们。 ASimpleCache是由知名Android开发者Jake Wharton...
EhCache是一个流行的开源Java缓存解决方案,它可以被Spring和Hibernate集成来作为二级缓存提供者。在配置Spring二级缓存时,我们需要完成以下步骤: 1. **添加依赖**:首先,确保项目中包含EhCache的相关库,包括`...
本文将详细探讨如何在Spring集成的Hibernate环境中配置二级缓存,以及其背后的原理和实践。 首先,我们需要了解什么是二级缓存。在Hibernate中,一级缓存是每个Session内部的缓存,它自动管理实体的状态,当一个...
Ehcache 是一个广泛使用的开源缓存解决方案,它支持本地缓存和分布式缓存,与 Hibernate 集成方便,可以提供高效的二级缓存服务。Infinispan 则是一个更强大的内存数据网格,不仅提供缓存功能,还支持数据分布式存储...
二级缓存与一级缓存的区别在于,一级缓存是SessionFactory级别的,每个Session都有自己的本地缓存,而二级缓存是SessionFactory级别的,是所有Session共享的全局缓存。一级缓存默认开启,而二级缓存需要手动配置。 ...
在网络图片加载场景下,二级缓存包括内存缓存(一级缓存)和磁盘缓存(二级缓存)。内存缓存响应速度快,但容量有限;磁盘缓存容量大,但读写速度相对较慢。 **二、LruCache** `LruCache`是Android SDK提供的一种...
Hibernate二级缓存是Java开发中使用Hibernate框架进行数据持久化时优化性能的一种重要技术。它在一级缓存(Session级别的缓存)的基础上,提供了一个全局的、跨会话的数据存储层,可以显著减少对数据库的访问,从而...
当我们谈论“Spring + Ehcache + Redis”两级缓存时,我们实际上是在讨论如何在Java环境中利用Spring框架来集成Ehcache作为本地缓存,并利用Redis作为分布式二级缓存,构建一个高效且可扩展的缓存解决方案。...
在Java的持久化框架Hibernate中,二级缓存是一个重要的性能优化工具。它允许应用程序存储已经查询过的数据,以便后续请求可以快速获取,而无需再次访问数据库。本实例着重讲解如何在Hibernate项目中配置和使用二级...
在Android开发中,三级缓存策略常用于图片加载,如使用LruCache(Least Recently Used Cache,最近最少使用缓存)作为内存缓存,配合文件缓存和网络缓存,形成一套完整的图片加载解决方案。 接下来,我们讨论“二次...
Ehcache是Hibernate常用的一种二级缓存实现,它是一个高性能、内存级的缓存解决方案。Ehcache提供了本地缓存、分布式缓存以及缓存的持久化等功能,这使得它成为Hibernate二级缓存的理想选择。在提供的压缩包中,包含...
同时,理解一级缓存的原理也有助于我们理解二级缓存和其他缓存解决方案,如Ehcache和Infinispan,以及它们在复杂分布式系统中的应用。 总之,Hibernate的一级缓存是提高应用程序性能的关键因素之一。理解其工作原理...
在这个名为“三级缓存demo”的项目中,我们重点探讨了LruCache和DiskLruCache两种缓存机制,它们都是Android开发中常用的内存和磁盘缓存解决方案。 首先,LruCache(Least Recently Used Cache)是Android SDK提供...
4. **注解配置**:在Java类或方法上使用注解可以方便地启用和配置二级缓存。例如,`@Cacheable`注解标记一个类为可缓存,`@Cache`注解可以进一步细化缓存配置,如区域、策略等。 5. **缓存区域**:在Hibernate中,...