配置文档
Ehcache配置文件ehcache.xml
Java Ehcache缓存的timeToIdleSeconds和timeToLiveSeconds区别
基本介绍
1.EhCache是一个纯Java的缓存框架,具有快速、精干等特点
2.MyBatis有自己默认的二级缓存(前面我们已经使用过了),但是在实际项目中,往往使用的是更加专业的第三方缓存产品作为MyBatis的二级缓存,EhCache就是非常优秀的缓存产品
配置和使用EhCache
1.引入EhCache,添加到pom.xml
<dependencies><!--引入ehcache核心库/jar--><dependency><groupId>net.sf.ehcache</groupId><artifactId>ehcache-core</artifactId><version>2.6.11</version></dependency><!--引入需要使用的slf4j--><dependency><groupId>org.slf4j</groupId><artifactId>slf4j-api</artifactId><version>1.7.25</version></dependency><!--引入mybatis整合ehcache库/jar--><dependency><groupId>org.mybatis.caches</groupId><artifactId>mybatis-ehcache</artifactId><version>1.2.1</version></dependency></dependencies>
2、在mybatis-config.xml中,确认全局(或者二级)缓存是打开的。
默认打开的,可以不用显式设置。
<settings><setting name="cacheEnabled" value="true"/></settings>
3、加入配置文件ehCache.xml到main/java/resources目录下
Ehcache配置文件ehcache.xml
4.在XxxMapper.Xml中启用EhCache,当然要把原来MyBatis自带的缓存配置给注销了
<mapper namespace="com.stein.mapper.MonsterMapper"><!--启用ehache,需要把原来的cache注销了--><!--<cache eviction="FIFO" flushInterval="60000"--><!-- size="512" readOnly="true"/>--><!--配置/启用ehcache--><cache type="org.mybatis.caches.ehcache.EhcacheCache"/>
5.测试
@Testpublic void cacheSeqTest() {System.out.println("查询第 1 次");Monster monster1 = monsterMapper.selectMonsterById(9);System.out.println(monster1);sqlSession.close();sqlSession = MybatisUtils.getSqlSession();monsterMapper = sqlSession.getMapper(MonsterMapper.class);System.out.println("查询第 2 次");Monster monster2 = monsterMapper.selectMonsterById(9);System.out.println(monster2);System.out.println("查询第 3 次");Monster monster3 = monsterMapper.selectMonsterById(9);System.out.println(monster3);if (sqlSession != null) {sqlSession.close();}System.out.println("操作成功");}
关闭一级缓存,使二级缓存有数据。然后可以debug,查看cache的类型是ehcache,从而确定确实是在使用ehcache了。
EhCache缓存-细节说明
如何理解EhCache和MyBatis缓存的关系
1.MyBatis提供了一个接口Cache
2.只要实现了该Cache接口,就可以作为二级缓存产品和MyBatis整合使用,Ehcache就是实现了该接口
3.MyBatis默认情况(即一级缓存)是使用的PerpetualCache类实现Cache接口的,是核心类
4.当我们使用了Ehcahce后,就是EhcacheCache类实现Cache接的,是核心类
5.我们看一下源码,发现缓存的本质就是Map<Object,Object> cache=new HashMap()
其他说明
MyBatis逆向工程说明
放在 SSM整合项目里面
创建表,使用逆向工程生成Bean、XxxMapper和XxxMapper.xml
MyBatis-Plus说明
放在Spring Boot讲解
官方说明:
MyBatis-Plus(简称MP)是一个MyBatis的增强工具,在MyBatis的基础上只做增强
不做改变,为简化开发、提高效率而生。
我们将通过一个简单的Demo来阐述MyBatis-Plus的强大功能,在此之前,我们假设您已
经:
- 拥有Java开发环境以及相应IDE
- 熟悉Spring Boot
- 熟悉Maven
所以放在SpringBoot一起讲解