第三方插件为ehcache,spring+hibernate
基于注解形式;
我使用的是maven管理项目,需要添加的maven依赖:
- <dependency>
- <groupId>com.googlecode.ehcache-spring-annotations</groupId>
- <artifactId>ehcache-spring-annotations</artifactId>
- <version>1.1.2</version>
- <type>jar</type>
- <scope>compile</scope>
- </dependency>
如果不使用依赖,直接导入包的话除了ehcache的jar包之外应该加上:common-logging,backport-util-concurrent这两个(我使用的是依赖,直接导入jar包方式没有尝试过,是看书上这么说的)
第一步:
- package com.easitech.domain;
- @Entity
- @Cache(usage=CacheConcurrencyStrategy.NONSTRICT_READ_WRITE)
- @Table(name="tb_permission"
- ,catalog="crebas"
- )
- public class Permission extends BaseDomain {
- <bean id="sessionFactory"
- class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean">
- <property name="dataSource" ref="dataSource" />
- <property name="packagesToScan">
- <list>
- <value>com.easitech.domain</value>
- </list>
- </property>
- <property name="hibernateProperties">
- <props>
- <!-- 1.使用EHCache缓存实现方案 -->
- <prop key="hibernate.cache.provider_class">
- org.hibernate.cache.EhCacheProvider
- </prop>
- <prop key="hibernate.dialect">org.hibernate.dialect.MySQLDialect</prop>
- <!-- 显示sql语句 -->
- <prop key="hibernate.show_sql">true</prop>
- </props>
- </property>
- <!-- 2.配置缓存策略 -->
- <property name="entityCacheStrategies">
- <props>
- <prop key="com.easitech.domain.Permission">nonstrict-read-write,fixedRegion</prop>
- </props>
- </property>
- </bean>
在src下建立一个文件ehcache.xml;
<ehcache>
<diskStore path="java.io.tmpdir"/>
<defaultCache maxElementsInMemory="10000" eternal="false"
overflowToDisk="false" timeToIdleSeconds="0" timeToLiveSeconds="0"
diskPersistent="false" diskExpiryThreadIntervalSeconds="120" />
<cache name="fixedRegion" maxElementsInMemory="100"
eternal="true" overflowToDisk="false"/>
</ehcache>