目录
ehcache
ehcache
是一个分布式缓存框架 !
为什么需要分布式缓存?
在大型的项目中,服务器是肯定不止一台的,每台服务器都有自己的缓存,那么当用户去
A服务器
查询一个数据以后,A服务器
将其缓存
到内存中,然后如果地址跳准到B服务器
,这时候,如果再次需要之前查询的数据,我们还必须再次查询数据库,因为缓存在A服务器
上,不在B服务器
上 ;我们很容易发现,这样很不好,存在 资源的浪费,多台服务器需要缓存多份相同的数据 ;
我们应该将
缓存数据
集中起来进行保管,这样,无论哪一台服务器,都让其来我这里查询缓存;如何集中,就需要使用第三方的分布式缓存框架了 ,这里选用
ehcache
;
mybatis 的 Cache 接口
虽然 mybatis
有自己的缓存策略,但是,实质上它的缓存策略,不是很好,因为他直接在内存中进行数据的缓存;
我们是可以自己提供 Cache
接口的 实现类
,然后配置,来替换掉 mybatis
的默认实现的 ;
不过,一般不用我们自己写,mybatis
和谁进行整合,谁一般都会有实现类 ;
整合步骤
引入
ehcache
下载完事后, 将
mybatis-ehcache-1.1.0.jar
、ehcache-core-2.6.11.jar
两个包引入工程 ;其中
ehcache
是依赖于slf4j
日志包的,但是一般mybatis
使用的时候,都导入了这个包 ;引入
ehcache
配置文件放置路径无所谓,可以放在任意包下面,
ehcache.xml
,我发现我没有配置文件,它也没报错;在 映射关系 中配置
Cache
接口的实现类<!--开启二级缓存-->
<!--type 指定 cache 接口的实现类,mybatis的默认实现类是 PerpetualCache-->
<!--要和 ehcache 整合,我们需要将 type 改为,ehcache的实现类-->
<cache type="org.mybatis.caches.ehcache.EhcacheCache"/>