MyBatis 緩存

//SqlSessionFactoryBuilde用一次就好,主要來生成SqlSessionFactory
SqlSessionFactory = SqlSessionFactoryBuilder().build(Resources.getResourceAsReader(a.xml));
//SqlSessionFactory 一旦創建,一直存在
SqlSession session = sqlSessionFactory.openSession();
//SqlSession 每個線程都有自己的Sqlsession實例。應該和http作用域保持一致
BlogMapper mapper = session.getMapper(BlogMapper.class);
//調用方法的時候啓用,方法調用結束,銷燬。

mapper.selectBlog(101);

Mybatis 以及緩存默認開啓,無法控制,每一個Sqlsession 有一個一級緩存。mapper.xml 中可以配置flushCache 清空緩存。但是這樣會清空所有的緩存影響速度。
Mybatis 二級緩存:

<settings>
    <setting name = "cacheEnabled" value = "true">
</settings>

Mybatis 默認配置文件全局二級緩存默認開啓,
Mapper.xml 中配置cache元素

<cache
    eviction(回收策略)
        LRU:最近使用最少
        FIFO:先進先出
        SOFT:軟引用,移除基於垃圾回收器狀態的軟引用規則對象
        WEAK:弱應用:更積極的移除基於垃圾收集器狀態的弱引用規則對象。
    flushInterval(刷新間隔):正整數,代表毫秒默認情況不設置,緩存僅在調用語句時候刷新
    size:引用數目。默認值1024
    readOnly:默認爲false,返回緩存對象的拷貝安全。

在接口上使用@CacheNamespace開啓二級緩存。

參照緩存cache-ref,@cacheNamespaceRef()

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章