在SpringBoot工程中配置EhCache緩存
1.在src/main/resources下新建ehcache.xml文件
eternal=true //緩存永久有效,false相反
maxElementsInMemory //cache 中最多可以存放的元素的數量。如果放入cache中的元素超過這個數值,有兩種情況:1、若overflowToDisk的屬性值為true,會將cache中多出的元素放入磁盤文件中。2、若overflowToDisk的屬性值為false,會根據memoryStoreEvictionPolicy的策略替換cache中原有的元素
timeToLiveSeconds//為在eternal為false時,緩存失效的時間
timeToIdleSeconds //若5分鍾內,該緩存未被調用,則也會失效
舉例說明:timeToLiveSeconds =3600 timeToIdleSeconds =300
以上配置代表緩存有效時間為3600秒(自緩存建立起一個小時有效 ),在有效的一個小時內,如果連續五分鍾未訪問緩存,則緩存失效,特別說明的是,就算緩存訪問從未間斷,到一個小時后,緩存也會失效
配置參考 https://blog.csdn.net/mlitsn/article/details/1909192
2.加入配置后,在DAO中使用注解
3.當調用該方法時,首次調用數據庫后,再次調用該方法時將不在查詢數據庫,可以在application.properties配置文件中加入打印Hibernate sql的配置
spring.jpa.show-sql=true
會發現,只查詢了一次,說明配置生效了
4.在新增和更新及刪除時數據變了,不能還拿緩存的老數據吧 ,緩存怎么去更新呢?
需要CacheManager去管理緩存,在新增和更新及刪除時,需要使用CacheManager去刷新緩存
CacheManager manager = CacheManager.getInstance();
manager.getCache("findByMethodName").flush();//findByMethodName為在ehcache中配置的緩存名
擴展內容待補充 。。。