当前位置:   article > 正文

java缓存 单例_使用单例模式和Map实现Java缓存的工作原理

java 双重检查所模式创建单例对象后缓存在map中

关于为什么要采用缓存技术,在网上一搜一大堆,我在这方面就不罗嗦了,我今天主要是想讲讲如何通过单例模式来实现缓存技术。

其实Java缓存技术的实现并不复杂,其关键步骤主要是建立一个Map集合类实现把缓存的内容保存到内存里面,只要服务器没有关闭缓存就不会被清除,除非人为清除,下面来看看我编写的代码:

新建一个类,用于编写相应的实体类

public class CacheManager {

private static Map caches;

private CacheManager() {}

static {

caches = new HashMap();

}

//用于保存缓存

public static void addCache(String key, Object value) {

caches.put(key, value);

}

//用于得到缓存

public static Object getCache(String key) {

return caches.get(key);

}

//用于清除缓存信息

public static void clearCache() {

caches.clear();

}

//用于清除指定的缓存信息

public static void removeCache(String key) {

caches.remove(key);

}

}

下面是编写相应的测试类:

public class SearchArticleServlet extends HttpServlet {

/**

*

*/

private static final long serialVersionUID = -1793489994204808165L;

Dao dao = new Dao();

public void doGet(HttpServletRequest request, HttpServletResponse response)

throws ServletException, IOException {

response.setContentType("text/html; charset=utf-8");

List article = new ArrayList();

//首先判断在HashMap中是否存在相应的值,如果没有则从数据库中读取

article = CacheManager.getCache("t") == null ? null : (List) CacheManager.getCache("t");

if (article == null) {

article = DaoFactory.getDaoInstance().search(dao);

CacheManager.addCache("t", article);

}

request.setAttribute("article", article);

request.getRequestDispatcher("main.jsp").forward(request, response);

}

public void doPost(HttpServletRequest request, HttpServletResponse response)

throws ServletException, IOException {

doPost(request, response);

}

}

这样就完成了缓存,这是一个简单的Java缓存的实例,至于相关的连接数据库这些语句,我想如果能学习到缓存这里的,这些应该都没有多大的问题

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/花生_TL007/article/detail/157717
推荐阅读
相关标签
  

闽ICP备14008679号