你好世界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,它们都由同一个CacheManager
pipe理。 将(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(); } }
- Google-guava checkNotNull和IntelliJ IDEA的“可能会产生java.lang.NullPointerException”
- 完全从Visual Studio中删除“错误列表”