Spring Framework的Cache接口完全与JDK的ConcurrentMap定义相似,但是在调用的同时会触发一些相关事件,用于缓存同步与更新,如从远端节点复制entry等。
此外,与ConcurrentMap不同的是,其拥有的方法如size(), values(),keySet() 与entrySet()都是不可靠的(因为没有同步锁),并且还可能影响性能,所以一般只应用于调试环境,生产环境最好采用其他的实现。
最后,在使用Spring的@CachePut注解时,其注解的方法必须要有返回值,也就是需要缓存的值,否则将会出现空值针错误。