
先展示下ehcache.xml的內容 很普通 overflowToDisk、diskPersistent都是設置的true。網上很多說法當overflowToDisk=‘true’,內存超出maxElementsInMemory才會磁盤化,其實是錯的。
其實只要設置了overflowToDisk=‘true’,就會產生data文件(序列化),緩存就會磁盤化。data文件只要cache.put()方法就能生成,並不用cache.flush()。.index文件是指向data的索引,而且比如tomcat服務器只是通過索引文件index,找到對應data文件才會加載磁盤緩存,如果沒有index文件那就加載不了data緩存文件,切記只有在cacheManager.shutdown() 才會生成index索引文件!! 如下。
所以要注意 hibernate內部封裝了 ehcache 正常關閉服務器就調用cacheManager.shutdown() 生成index文件。非正常關閉 就無法生產 所以無法調用磁盤緩存了。
1. 執行./shutdown.sh shutdown.bat 正常關閉
2. 殺進程 kill -9 非正常關閉
3. System.exit 關閉虛擬機 調用關閉鈎子 正常關閉




然后通過如下 反序列化data文件 看一下就行了


