EhCache其实底层的实现就是static方法,我声名一个变量为static,实际上就把这个变量放在了缓存中,只不过EhCahce等缓存框架是封装了一层,提供了一些实用的方法并且可以进行一些配置。
下面介绍一个简单的实用EhCache的例子。
代码分成4个部分。
public class TestMain {
/**
* @param args
*/
public static void main(String[] args) {
EhcacheUtil eUtil = new EhcacheUtil();
String one = eUtil.getPrame("1");
System.out.println(one);
}
}
public class EhcacheUtil {
private Cache cache ;
private void loadPrame(){
try {
CacheManager cm = CacheManager.create("src/com/x/ehcache.xml");
// cache = new Cache("b", 5000, false, false, 5, 2);
// cm.addCache(cache);
// cache = cm.getCache("b");
cache = cm.getCache("a");
PrameUtil pUtil = new PrameUtil();
for(int i=1;i<6;i++){
cache.put(new Element(String.valueOf(i),pUtil.getPrame(String.valueOf(i))));
}
} catch (IllegalStateException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (CacheException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public String getPrame(String key){
String value = "";
try {
if(cache == null){loadPrame();}
Element el = cache.get((String)key);
if(el == null){loadPrame();el = cache.get((String)key);}
if(el == null){System.out.println("没有");}
else{value = el.getValue().toString();}
} catch (IllegalStateException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (CacheException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return value;
}
}
public class PrameUtil {
public String getPrame(String key){
String value = "";
InputStream is = this.getClass().getClassLoader().getResourceAsStream("com/p/p.properties");
Properties p = new Properties();
try {
p.load(is);
value = p.getProperty(key);
} catch (IOException e) {
e.printStackTrace();
}
return value;
}
}
ehcache.xml:
<ehcache>
<defaultCache
maxElementsInMemory="1000"
eternal="true"
timeToIdleSeconds="3600"
timeToLiveSeconds="3600"
overflowToDisk="true"
/>
<cache name="a"
maxElementsInMemory="1000"
eternal="true"
timeToIdleSeconds="3600"
timeToLiveSeconds="3600"
overflowToDisk="false"
/>
</ehcache>
执行结果,输出“a"
分享到:
相关推荐
- **XML配置**:是最常用的方式之一,通过`ehcache.xml`文件来定义缓存规则。 - **程序内配置**:适用于动态调整缓存设置的情况,可以在运行时更改配置。 ##### 4.1 Ehcache的类层次模型 - **核心类**:`...
本技术文档旨在为开发者提供全面的EHCache理解和使用指南,帮助他们有效地集成和管理缓存,提升应用性能,减少数据库压力。 20.2 文档范围 本文档覆盖了EHCache的基本原理、配置方法、API使用、缓存策略以及与其他...
Ehcache 1.5作为一款强大的缓存解决方案,不仅适用于单独使用,还特别适合与Hibernate集成,优化ORM操作的性能。其分布式缓存功能在多节点环境中尤为有用,可以提升整个系统的响应速度和可扩展性。理解和熟练运用...
为了在Java项目中单独使用EHCache,开发者需要按照以下步骤操作: 1. **导入EHCache库**:将EHCache的jar文件加入到项目中。 2. **配置ehcache.xml**:根据需求自定义缓存区域的配置。 3. **初始化CacheManager**:...
### EHCache详解 #### 一、EHCache简介与特点 **1.1 背景** 随着现代软件系统的复杂度不断提高,对数据处理速度的要求也...特别是对于需要支持高并发请求的应用场景,合理地配置和使用EHCache将带来显著的性能提升。
它可以单独使用,也可以与Hibernate对象/关系映射框架集成,甚至可以作为Servlet缓存。Ehcache的存储方式分为内存和磁盘两层,因此即使内存满载,数据也能持久化到磁盘,避免了容量限制的问题。在虚拟机重启时,缓存...
3. **`<defaultCache>` 标签**:用于配置默认的缓存行为,当没有为特定缓存配置单独的 `<cache>` 元素时,会使用这些默认值。 - `maxElementsInMemory`:内存中最大元素数量,默认为 `10000`。 - `eternal`:是否...
如果未找到`ehcache.xml`文件,则会自动使用`ehcache-failsafe.xml`作为默认配置文件,该文件通常包含最基本的设置以确保Ehcache能够正常启动并工作,但同时也会提示开发者创建一个更完整的配置文件。 ##### 2.1 ...
EHCache 是一个开源的 Java 缓存库,它提供了内存和磁盘缓存的解决方案,广泛应用于提高应用程序性能,尤其是在数据访问层。分布式配置文件是 EHCache 实现多节点共享缓存的关键,允许在分布式环境中存储和检索数据...
Ehcache是一款广泛使用的Java缓存库,它提供快速、可伸缩的缓存解决方案,适用于内存和磁盘存储。Ehcache可以用于减少数据库负载,提高应用性能,尤其是在频繁读取但更新不频繁的数据场景下。它支持多级缓存策略,...
EhCache是一个高性能的、内存级别的缓存框架,能够有效提升应用性能,减少数据库压力。它支持分布式缓存,若需要更高性能或更复杂的缓存策略,可以替换为Redis等其他缓存解决方案。 6. **JCaptcha**: JCaptcha是...
3. **Ehcache**:Ehcache是一款广泛使用的开源Java缓存解决方案,支持内存和磁盘存储,具有线程安全、分布式缓存等功能。它可以与Spring框架无缝集成,非常适合大型项目。 4. **JCache (JSR-107)**:Java Caching ...
6. **缓存策略**:使用如EHCache或Infinispan等缓存技术,可以将常用数据存储在内存中,减少数据库访问,提高响应速度。同时,需要设计合理的缓存更新策略,避免数据一致性问题。 7. **负载均衡与集群**:通过负载...
本文档旨在详细介绍如何在Spring框架中集成和使用EHCache作为缓存解决方案,以提高应用程序性能,并实现跨服务器的集群缓存设计。文档覆盖了从基础概念到高级配置的所有方面,适用于对Java缓存和Spring框架有一定...
此外,Ehcache也可独立于这些框架之外单独运行,满足各种不同场景的需求。 在存储策略方面,Ehcache主要分为三种方式:堆内存存储、非堆内存存储和磁盘存储。堆内存存储是最基础的,利用Java虚拟机的堆空间来存放...
使用EhCache还需要创建一个单独的EhCache.xml配置文件,其中定义了缓存的默认行为、缓存策略以及磁盘存储路径等。例如: ```xml <ehcache> timeToIdleSeconds="120" timeToLiveSeconds="120" overflowToDisk=...
Ehcache是一款成熟且广泛使用的Java缓存框架,具有以下特点: - 内存缓存速度快。 - 支持两级缓存(内存 + 磁盘)。 - 多区域缓存数据结构,便于组织和管理缓存数据。 - 提供缓存数据监听接口,便于实时监控缓存...
对于每个需要使用二级缓存的实体类,都需要在`ehcache.xml`文件中进行单独配置。例如,配置名为`com.xxx.pojo.Foo`的实体类: ```xml timeToLiveSeconds="7200" timeToIdleSeconds="3600" overflowToDisk="true" ...
如果选择Ehcache,还需要提供一个单独的`ehcache.xml`配置文件。在DAO组件中,对Query对象调用`Cacheable`方法并设置为`true`,以确保查询结果被缓存。 综上所述,Hibernate的查询缓存是提升应用性能的关键手段,...