spring中启用缓存

1.所需jar

 hibernate3基本jar和ehcache-1.2.3.jar  

2.配置 

2.1 spring配置

 <bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">

          < property  name ="dataSource"  ref ="dataSource" />
          < property  name ="mappingResources" >
             < list >
               < value >com/westsoft/bean/Person.hbm.xml </ value >
             </ list >
          </ property >
          < property  name ="hibernateProperties" >
             < value >
                hibernate.dialect=org.hibernate.dialect.MySQL5Dialect
                hibernate.hbm2ddl.auto=update
                hibernate.show_sql=false
                hibernate.format_sql=false
                 hibernate.cache.use_second_level_cache=true
                   hibernate.cache.use_query_cache=false
                hibernate.cache.provider_class=org.hibernate.cache.EhCacheProvider

               </ value >
          </ property >
     </ bean >
     < bean  id ="txManager"  class ="org.springframework.orm.hibernate3.HibernateTransactionManager" >
           < property  name ="sessionFactory"  ref ="sessionFactory" />
     </ bean >
     < tx:annotation-driven  transaction-manager ="txManager" />

2.2 bean.hbm.xml配置

 <?xml version="1.0" encoding="UTF-8"?>

<! DOCTYPE hibernate-mapping PUBLIC
        "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
        "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"
>
< hibernate-mapping  package ="cn.itcast.bean" >
     < class  name ="Person"  table ="person" >
         <cache usage="read-write" region="cn.itcast.bean.Person"/>
         < id  name ="id" >
             < generator  class ="native" />
         </ id >
         < property  name ="name"  length ="10"  not-null ="true" />
     </ class >
</ hibernate-mapping >

2.3 cach配置文件 名字ehcache.xml

 <?xml version="1.0" encoding="UTF-8"?>

<!--  
    defaultCache节点为缺省的缓存策略
     maxElementsInMemory 内存中最大允许存在的对象数量
     eternal 设置缓存中的对象是否永远不过期
     overflowToDisk 把溢出的对象存放到硬盘上
     timeToIdleSeconds 指定缓存对象空闲多长时间就过期,过期的对象会被清除掉
     timeToLiveSeconds 指定缓存对象总的存活时间
     diskPersistent 当jvm结束是是否持久化对象
     diskExpiryThreadIntervalSeconds 指定专门用于清除过期对象的监听线程的轮询时间
 
-->
< ehcache >
     < diskStore  path ="D:\cache" />
     < defaultCache   maxElementsInMemory ="1000"  eternal ="false"  overflowToDisk ="true"
        timeToIdleSeconds
="120"
        timeToLiveSeconds
="180"
        diskPersistent
="false"
        diskExpiryThreadIntervalSeconds
="60" />
     < cache  name ="com.westsoft.bean.Person"  maxElementsInMemory ="100"  eternal ="false"
    overflowToDisk
="true"  timeToIdleSeconds ="300"  timeToLiveSeconds ="600"  diskPersistent ="false" />
</ ehcache >

 

你可能感兴趣的:(spring)