fkjava

BlogJava 首页 新随笔 联系 聚合 管理
  49 Posts :: 0 Stories :: 0 Comments :: 0 Trackbacks

 

 Hibernate持久层缓存的级别:

  

    1)事务级别

  

    该级别缓存中的缓存对象只能被当前事务使用,每个事务都有各自的缓存,缓存中的数据通常以关联对象的形式保存。同时被缓存对象的生命周期依赖于当前事务的生命周期,当前事务结束时,该缓存中缓存对象的生命周期也会结束。事务级别的缓存通常使用内存作为保存缓存对象的存储介质,Hibernate的一级缓存(Session缓存)即该级别的缓存。

  

    2)应用(进程)级别

  

    该级别缓存中对象可以被当前应用(进程)内的所有事务共享访问,被缓存对象的生命周期与当前应用相同。当应用结束时,缓存对象的生命周期结束。如果当前应用是一个分布式应用,则不能使用该级别的缓存,这种级别的缓存使用内存或硬盘作为缓存对象的存储介质。

  

    3)分布式级别

  

    如果当前应用部署在多台服务器的分布式(集群)环境下,则当前应用可以使用分布式级别的缓存缓存持久化对象。分布式缓存中缓存的数据会被一台或者多台服务器共享。如果缓存数据发生变化,则更新后的缓存数据会同步到集群中的每台服务器中,进而保证缓存数据的一致性。

  

    Hibernate的二级缓存可以是应用级别或者分布式级别的缓存,完全依赖于第三方缓存组件的具体实现。

  

    Hibernate没有提供自身产品级别的二级缓存,而是在设计上利用第三方成熟的缓存组件实现。为了集成不同的第三方缓存组件

  

    Hibernate提供了org.hibernate.cache.CacheProvider接口用来作为缓存组件与Hibernate之间的适配器。在实际开发中,

  

    Hibernate二级缓存组件如表:

  

    缓存名称

  

    对应的适配器类

  

    Hashtable

  

    org.hibernate.cache.HashtableCacheProvider

  

    EHCache

  

    org.hibernate.cache.EhCacheProvider

  

    OSCache

  

    org.hibernate.cache.OSCacheProvider

  

    SwarmCache

  

    org.hibernate.cache.SwarmCacheProvider

  

    JBoss Cache 1.x

  

    org.hibernate.cache.TreeCacheProvider

  

    Jboss Cache 2

  

org.hibernate.cache.jbc2.JBossCacheRegionFactory

     您正在看的文章来自疯狂软件教育中心 www.fkjava.org

     信息咨询:Q564205990           星老师

posted on 2012-09-10 17:35 疯狂软件 阅读(128) 评论(0)  编辑  收藏

只有注册用户登录后才能发表评论。


网站导航: