每当服务器启动时,我都试图将数据库对象缓存到服务器端的Java对象中。
目前我只是使用静态Hashmap在启动时设置属性,并在用户从GUI更新值时更新属性。每当更新值时都很难维护缓存功能。
任何人都可以帮我在java服务器端应用缓存功能吗?
答案 0 :(得分:2)
Ehcache是最好的方法之一。它附带一个默认配置,可以在几分钟内完成并在应用程序中使用。
CacheManager.getInstance().addCache("test");
将创建一个名为test和defualt属性的缓存。
添加对象很容易,您需要创建一个带有键和值的net.sf.ehcache.Element
并将其放入缓存中。
CacheManager.getInstance().getCache("test").put(new Element(key, value));
然后从缓存中取回也类似于get(key);
。
如果你的应用中有弹簧,你的生活会更简单。您可以在方法上添加@Cacheble
注释以缓存返回值。你可以从spring文档中找到很多帮助。
默认情况下,配置将有120秒的到期时间。这意味着您放入缓存的对象将在120秒后过期并被删除。您可以通过拥有自己的cache.xml来增加/调整它。
答案 1 :(得分:1)
对于简单缓存,您可以使用ehcache。如果JPA实现基于Hibernate,则infinispan是正确的选择。与ehcache相比,分布式缓存在infinispan中更好,因为它可以作为一个单独的进程运行(Infinispan Hot Rod Server)。