配置文檔
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一起講解