java中对缓存的实现有多重方式,从技术角度来讲我觉得可以分为两类:分布式缓存和本地缓存;前者多使用redis、memcache等分布式数据库实现,后者主要是map、loadingCache实现;
无论采用哪种实现方式,都需要比较好的缓存切入点,总结了下java中实现缓存比较常用的几个切入点:
- Mybatis的Cache接口
Mybatis提供的自定义二级缓存功能
参考:http://blog.csdn.net/luanlouis/article/details/41390801 - Mybatis的Interceptor接口
通过该接口,可以获取Mybatis的statement等数据库调用详情;通过对调用过程进行分析,可以对缓存进行定制;
参考:http://blog.csdn.net/moshenglv/article/details/52699976 - Spring的Cacheable注解
通过在方法上添加该注解,可以以方法的key和返回值为value,对方法的结果进行缓存。
参考:https://www.ibm.com/developerworks/cn/opensource/os-cn-spring-cache/ - 自定义实现的方法缓存
其他方法仁者见仁智者见智了