JSP 개발 의 hibenate 2 급 캐 시 설정 방법

JSP 개발 의 hibenate 2 급 캐 시 설정 방법
hibenate 2 급 캐 시 는 프로 세 스 급 캐 시 나 Session Factory 급 캐 시 라 고도 합 니 다.
2 급 캐 시 는 전역 캐 시 입 니 다.모든 session 에서 공유 할 수 있 습 니 다.
2 급 캐 시 는 수명 주기 와 Session Factory 의 수명 주기 가 일치 하 며,Session Factory 는 2 급 캐 시 를 관리 할 수 있 습 니 다.
자주 사용 하 는 캐 시 플러그 인 Hibernater 2 급 캐 시 는 플러그 인 입 니 다.다음은 몇 가지 자주 사용 하 는 캐 시 플러그 인 입 니 다.
  • EhCache:프로 세 스 범위 의 캐 시 로 사용 할 수 있 습 니 다.데 이 터 를 저장 하 는 물리 적 미디어 는 메모리 나 하 드 디스크 로 Hibernate 의 조회 캐 시 를 지원 합 니 다
  • OSCache:프로 세 스 범위 의 캐 시 로 사용 할 수 있 습 니 다.데 이 터 를 저장 하 는 물리 적 미디어 는 메모리 나 하 드 디스크 일 수 있 습 니 다.풍부 한 캐 시 데이터 만 료 정책 을 제공 하여 Hibernate 의 조회 캐 시 를 지원 합 니 다
  • SwarmCache:클 러 스 터 범위 내 캐 시 로 사용 할 수 있 지만 Hibernate 의 조회 캐 시 는 지원 되 지 않 습 니 다
  • JBossCache:클 러 스 터 범위 내의 캐 시 로 서 트 랜 잭 션 병행 접근 정책 을 지원 하고 Hibernate 의 조회 캐 시 에 지원 합 니 다
  • 프로그램 에서 2 급 캐 시 를 사용 하 는 방법:
    우선 hibenate.cfg.xml 에서 2 급 캐 시 를 엽 니 다.
    
    
    <hibernate-configuration> 
      <session-factory> 
    
       ...... 
    
       <!--        --> 
       <property name="hibernate.cache.use_second_level_cache">true</property> 
       <!--   "    "       findall()、list()、Iterator()、createCriteria()、createQuery()           ,      --> 
       <property name="hibernate.cache.use_query_cache">true</property> 
       <!--         EHCache Provider --> 
       <!-- <property name="hibernate.cache.provider_class"> 
         org.hibernate.cache.EhCacheProvider 
       </property> --> 
       <!--            --> 
       <!--<property name="hibernate.cache.region_prefix">test</property>--> 
       <!--          --> 
       <property name="hibernate.cache.region.factory_class"> 
         net.sf.ehcache.hibernate.EhCacheRegionFactory 
       </property> 
       <!-- Hibernate4      org.hibernate.cache.ehcache.EhCacheRegionFactory --> 
       <!--            --> 
       <!-- <property name="hibernate.cache.provider_configuration_file_resource_path"> 
         ehcache.xml 
       </property> --> 
       <!--   Hibernate                  --> 
       <property name="hibernate.cache.use_structured_entries">true</property> 
    
       <!-- Hibernate                --> 
       <property name="hibernate.generate_statistics">true</property> 
    
       ...... 
    
      </session-factory> 
    </hibernate-configuration> 
    
    
    그리고 ehcache 설정(ehcache.xml)
    cache 매개 변수 설명:
    ●name:지정 영역 도 메 인 이름
    ●maxElementsInMemory:메모리 에 캐 시 된 최대 수
    ●maxElementsOnDisk:디스크 에 캐 시 된 최대 수
    ●eternal:설정 이 영원히 만 료 되 지 않 을 지 여부
    ●overflow ToDisk:하드디스크 넘 침 수
    ●timeToIdleSeconds:대상 이 남 은 상태 인 최대 초 후 폐기
    ●timeToLive Seconds:대상 이 캐 시 상태 인 최대 초 후 폐기
    ●memory StoreEvictionPolicy:캐 시 알고리즘,LRU(기본 값),LFU,LFU
    캐 시 알고리즘 에 대해 서 는 세 가지 가 있 습 니 다.
    ●LRU:(Least Rencently Used)새로 들 어 온 대상 을 교체 해서 사용 시간 을 계산 하면 최근 에 거의 사용 하지 않 는 대상
    ●LFU:(Least Frequently Used)적중률 높낮이 로 낮은 대상 교체
    ●LFU:(First In First Out)2 급 캐 시 에 가장 먼저 들 어간 대상 을 교체
    Xml 코드
    
    <?xml version="1.0" encoding="UTF-8"?> 
    <ehcache> 
     <!--                             --> 
     <diskStore path="D:/ehcache"/> 
    
     <!--   cache:              ,        --> 
     <defaultCache maxElementsInMemory="10000" 
            eternal="false" 
            timeToIdleSeconds="300"  
            timeToLiveSeconds="600" 
            overflowToDisk="false"/> 
     <!--     cache:  name  ,name   Hibernate       --> 
     <cache name="cn.javass.h3test.model.UserModel" 
            eternal="false" 
            maxElementsInMemory="100" 
            timeToIdleSeconds="1200" 
            timeToLiveSeconds="1200" 
            overflowToDisk="false"> 
     </cache> 
     </ehcache> 
    
    
    모든 실체의 hbm 파일 에 cache 요 소 를 설정 합 니 다.usage 는 read-only 또는 read-write 등 4 가지 일 수 있 습 니 다.
    Xml 코드
    
    <class> 
    <!--                    read-only read-write nonstrict-read-write transactional--> 
        <class name="cn.java.test.model.User" table="TBL_USER"> 
           <cache usage="read-write"/> 
        ......  
      </class> 
    </hibernate-mapping> 
    
    **    Hibernate         ** 
    
    **Java   
    @Entity  
    @Table  
    @Cache(usage = CacheConcurrencyStrategy.READ_WRITE) 
    public class User implements Serializable {  
      private static final long serialVersionUID = -5121812640999313420L; 
      private Integer id; 
      private String name; 
    
      ...... 
    }**
    
    
    이상 은 hibenate 2 급 캐 시 를 실현 하 는 두 가지 방법 입 니 다.본 사이트 에 서 는 JSP hibenate 개발 에 관 한 글 이 많 습 니 다.많이 찾 아 보 세 요.읽 어 주 셔 서 감사합니다. 도움 이 되 셨 으 면 좋 겠 습 니 다.본 사이트 에 대한 지지 에 감 사 드 립 니 다!

    좋은 웹페이지 즐겨찾기