1、在service包中,分别建立了关于缓存的一系列的接口、类等,封装到一个工具包中;

  1. 临时缓存的接口(代码部分):
package com.tools;

import java.util.Date;

public interface CacheTemplet {
//设置添加永久缓存,(缓存唯一索引,缓存数据)
public void addCache(Object key,Object value);
//设置添加缓存,不过需要有一个过期的时间毫秒数限制
public void addCache(Object key,Object value,Long duration);
//设置添加缓存,需要有一个date类型的时间限制
public void addCache(Object key,Object value,Date expire);
//获取缓存信息,根据key获取缓存信息
public Object getCache(Object key);
//删除缓存信息,根据key值进行删除
public void DelCache(Object key);
}

2、再建立一个关于"缓存的工厂",用于获取缓存的实现,从工厂中获取到缓存对象,然后从缓存对象中对缓存信息进行操作(获取也好,删除也可以);

package com.tools;

//缓存工厂
public class CacheFactory {
//无参构造器
private CacheFactory(){ }
//私有的成员变量
private CacheTemplet cacheTemplet = null; //获取JVM缓存(未写完)
public CacheTemplet GetCache(){....}
  //获取缓存
  public CacheTemplet GetCache(CacheEnum cacheEnum){...}
  //Redis连接池
  private RedisPool redisPool;
  //接下来就是相应的set方法,没有用到get方法,
  public void setRedisPool(RedisPool redisPool){...}
  
  private static CacheFactory cacheFactory = null;
  //获取缓存工厂
  public static CacheFactory GetCacheFactory() {...}
  .
  .
  .
  .
  ........
}

3、然后在相应的service实现类中,具体的使用方法如下:java代码

  

//获取距离用户最近的饭店
public List<Map<String ,String>> putSale(final String product,final String userTell){
//首先从实例化缓存临时对象
CacheTemplet cacheTemplet = CacheFactory.GetCacheFactory().GetCache(
CacheEnum.Redis);//临时缓存,获取缓存工厂,获取缓存实现
//在创建缓存实体类对象
List<Map<String,String>> storeInRe = new ArrayList<Map<String, String>>() ;
.....
Map<String, String> e = new HashMap<String, String>();
e.put("yxwddh", yxwddh); // 饭店电话
storeInRe.add(e);//添加缓存信息
}

  

java项目中,针对缓存问题的处理方式【接口中的处理方式】的更多相关文章

  1. Atitit 纯java项目的提升进度大法---通用json dsl接口

    Atitit 纯java项目的提升进度大法---通用json dsl接口 1. Json dsl接口1 1.1. Url:  http://aaa.com/api_jsondsl?dsl={}1 1. ...

  2. 根据从redis缓存的数据查询出来,在从数据库中取出所有的数据,俩个数据进行比较,去掉重复,剩下库中新插入的数据,取出新数据,然后把redis中的缓存数据清空把从数据库中查出来的所有数据放到redis缓存中

    参考代码: public String getNewCenter(HttpServletRequest request,HttpServletResponse resonse){ JSONObject ...

  3. SpringBoot中Shiro缓存使用Redis、Ehcache

    在SpringBoot中Shiro缓存使用Redis.Ehcache实现的两种方式实例 SpringBoot 中配置redis作为session 缓存器. 让shiro引用 本文是建立在你是使用这sh ...

  4. spring中配置缓存—ehcache

    常用的缓存工具有ehcache.memcache和redis,这里介绍spring中ehcache的配置. 1.在pom添加依赖: <!-- ehcache 相关依赖 --> <de ...

  5. 分布式数据存储 之 Redis(二) —— spring中的缓存抽象

    分布式数据存储 之 Redis(二) -- spring中的缓存抽象 一.spring boot 中的 StringRedisTemplate 1.StringRedisTemplate Demo 第 ...

  6. paip.批处理清理java项目冗余jar的方法

    paip.批处理清理java项目冗余jar的方法 在myeclipse中开发的java项目遇到jar包冗余情况,如何删除项目中的冗余jar包啊?项目很大jar包一百多个. 2010-09-14 14: ...

  7. Java项目转换成Web项目

    阐述:有时候我们在Eclipse中导入一个web项目,发现导入到项目中后变成一个Java项目,这让人很蛋疼.本篇主要讲述怎样将这个本该为web项目的Java项目变身回去,以及一些在导入过程中遇到的一些 ...

  8. django中的缓存 跨域问题(同源策略)

    django缓存机制 在动态网站中,用户所有的请求,服务器都会去数据库中进行相应的增,删,查,改,渲染模板,执行业务逻辑,最后生成用户看到的页面. 当一个网站的用户访问量很大的时候,每一次的的后台操作 ...

  9. Java 8 接口中的默认方法与静态方法

    Java 8 接口中的默认方法与静态方法 1. 接口中的默认方法 允许接口中包含具有具体实现的方法,该方法称"默认方法",默认方法使用用 default 关键字修饰. public ...

  10. django中的缓存

    对于一个动态网站来说,用户的每次访问都意味着对服务器的一次开销,当该服务器的并发访问非常大时,对于一个动态网站来说,开销会非常的大.所以对于大中型web应用来说,减轻服务器的性能瓶颈就很有必要 对于d ...

随机推荐

  1. httprunner

    https://cn.httprunner.org/quickstart/ httprunner官方 https://testerhome.com/opensource_projects/httpru ...

  2. django之表单类

    一:表单类 一般我们在html中自己写的表单类似于下面的样子 <!DOCTYPE html> <html lang="en"> <head> & ...

  3. 初识Django之前端后端与数据库的配置

    目录 一.静态文件配置 二.关于form表单的补充 三.post请求出现403问题 四.request方法初识 4.1判断当前请求方式 4.2request.POST与request.GET 五.py ...

  4. Docker(三):Docker入门教程-CentOS Docker 安装

    CentOS Docker 安装 Docker支持以下的CentOS版本: CentOS 7 (64-bit) CentOS 6.5 (64-bit) 或更高的版本 前提条件 目前,CentOS 仅发 ...

  5. java获取当前时间的年周月季度等的开始结束时间

    import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; /** * Created b ...

  6. BP神经网络设计

    1.网络层数 大部分单个隐藏层即可 2.输入层神经元个数 输入变量的个数通常都是由问题的外部描述所确定的.例如,如果有4个外部变量作为网络的输入,那么网络就有4个输入.但是,这是不是意味着输入层的神经 ...

  7. PHP导出excel文件名中文IE乱码解决

    <?php $ua = strtolower($_SERVER['HTTP_USER_AGENT']); if(preg_match('/msie/', $ua) || preg_match(' ...

  8. Codeforce |Educational Codeforces Round 77 (Rated for Div. 2) B. Obtain Two Zeroes

    B. Obtain Two Zeroes time limit per test 1 second memory limit per test 256 megabytes input standard ...

  9. [转]Linux下防止进程使用swap及防止OOM机制导致进程被kill掉

    首先解释两个概念:swap:在linux里面,当物理内存不够用了,而又有新的程序请求分配内存,那么linux就会选择将其他程序暂时不用的数据交换到物理磁盘上(swap out),等程序要用的时候再读进 ...

  10. 【转】C++ 模板类的声明与实现分离问题

    链接如下: https://www.cnblogs.com/tonychen-tobeTopCoder/p/5199655.html