你好世界ehcache的例子?

ehcache是​​一个巨大的可configuration的野兽,例子是相当复杂的,往往涉及到多层接口。

有没有人遇到最简单的例子,它只是caching像内存中的一个单一的数字(不是分布式,没有XML,只有尽可能less的java行)。 然后这个数字被caching了60秒,然后下一个读取请求导致它得到一个新值(例如通过调用Random.nextInt()或类似的)

使用singleton和一些同步来编写我们自己的caching来更快更容易吗?

没有spring请。

EhCache带有一个故障安全configuration,有一些合理的过期时间(120秒)。 这足以启动和运行。

import:

import net.sf.ehcache.CacheManager; import net.sf.ehcache.Element; 

然后,创buildcaching非常简单:

 CacheManager.getInstance().addCache("test"); 

这会创build一个名为test的caching。 您可以拥有许多不同的,独立的caching,它们都由同一个CacheManagerpipe理。 将(key, value)对添加到此caching非常简单:

 CacheManager.getInstance().getCache("test").put(new Element(key, value)); 

为一个给定的键检索一个值就像下面这样简单:

 Element elt = CacheManager.getInstance().getCache("test").get(key); return (elt == null ? null : elt.getObjectValue()); 

如果在默认的120秒过期后尝试访问元素,则caching将返回空值(因此检查elt是否为空)。 您可以通过创build您自己的ehcache.xml文件来调整到期期限 – 在ehcache网站上的文档体面。

jbrookover的答案的工作实现:

 import net.sf.ehcache.CacheManager; import net.sf.ehcache.Element; import net.sf.ehcache.Cache; public class EHCacheDemo { public static final void main(String[] igno_red) { CacheManager cchm = CacheManager.getInstance(); //Create a cache cchm.addCache("test"); //Add key-value pairs Cache cch = cchm.getCache("test"); cch.put(new Element("tarzan", "Jane")); cch.put(new Element("kermit", "Piggy")); //Retrieve a value for a given key Element elt = cch.get("tarzan"); String sPartner = (elt == null ? null : elt.getObjectValue().toString()); System.out.println(sPartner); //Outputs "Jane" //Required or the application will hang cchm.removeAllCaches(); //alternatively: cchm.shutdown(); } }