源:http://www.iteye.com/problems/7842
http://dxp4598.iteye.com/blog/1250512
评:
spring + jpa(hibernate实现)配置Ehcache,如何获取ehcache统计信息
- <bean id="entityManagerFactory" class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">
- <property name="dataSource" ref="dbcpDataSource">
- <property name="jpaVendorAdapter">
- <bean class="org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter">
- <property name="database" value="MYSQL">
- <property name="showSql" value="true">
- </bean>
- </property>
- <property name="jpaProperties">
- <props>
- <prop key="hibernate.cache.provider_class">net.sf.ehcache.hibernate.SingletonEhCacheProvider</prop>
- <prop key="hibernate.cache.use_query_cache">true</prop>
- <prop key="hibernate.cache.use_second_level_cache">true</prop>
- <prop key="hibernate.generate_statistics">true</prop>
- <prop key="hibernate.use_sql_comments">true</prop>
- <prop key="hibernate.format_sql">true</prop>
- <prop key="hibernate.generate_statistics">true</prop>
- </props>
- </property>
- </bean>
Entity上面也加了Cache注释,ehcache.xml也配置好了,但是jpa如何获得ehcache的一些统计信息呢?
缓存应该是生效了,查询很多次只生成一条SQL语句,像Hibernate里面SessionFactory里面有个statistics()函数 可以打印ehcache统计信息的,不知道JPA里面怎么样打印ehcache的统计信息,比如缓存命中情况等,要不然光配置好了,不能查看统计情况也没 有意义啊
已经搞定了:-)
Session session = (Session)baseDAO.getEntityManager().getDelegate();
SessionFactory sessionFactory = session.getSessionFactory();
这样就可以获得SessionFactory了,然后就可以调用里面的getStatistics()获得统计信息了,现在结贴。
在Hibernate3 JPA里配置了一下非分布式环境的二级缓存,效果不错。具体过程如下:
1, 需要引入的jar包
http://ehcache.org/downloads/catalog 下载的包里已经包含了简单的例子和javadoc
ehcache-core-2.4.6.jar (必需)
ehcache-terracotta-2.4.6.jar (必需)
slf4j-api-1.6.1.jar
slf4j-jdk14-1.6.1.jar
2, 在JPA的persistence.xml中加入以下配置
<property name="hibernate.cache.provider_class"
value="org.hibernate.cache.SingletonEhCacheProvider" />
<property name="hibernate.cache.provider_configuration" value="/ehcache.xml" />
<property name="hibernate.cache.use_second_level_cache" value="true" />
<property name="hibernate.cache.use_query_cache" value="true" />
3, 对ehcache进行简单的设置(ehcache.xml)
<?xml version="1.0" encoding="UTF-8"?>
<ehcache>
<defaultCache maxElementsInMemory="1000" eternal="false"
timeToIdleSeconds="1200" timeToLiveSeconds="1200" overflowToDisk="false"
clearOnFlush="true">
</defaultCache>
<!-- 单独对某个entity的缓存策略设置-->
<cache name="com.payment.entity.PromotionEntity" maxElementsInMemory="100"
eternal="false"
timeToIdleSeconds="1200" timeToLiveSeconds="1200" overflowToDisk="false"
clearOnFlush="true">
</cache>
</ehcache>
4, JPA的Entity类中声明缓存的隔离机制
import org.hibernate.annotations.Cache;
import org.hibernate.annotations.CacheConcurrencyStrategy;
@Cache(usage = CacheConcurrencyStrategy.READ_WRITE)
@Entity
@Table(name = "catagory")
public class CatagoryEntity extends BaseEntity { ... }
5, 如何使用二级缓存中的对象
在Hibernate中可以通过org.hibernate.Query.setCacheable(true);
在JPA中,由于EntityManager中得到的javax.persistence.Query没有这个方法了。我们可以通过
javax.persistence.Query.setHint(”org.hibernate.cacheable”, true);来实现读取二级缓存。
6, 在log4j输出日志中可以看到缓存机制作用
log4j.logger.org.hibernate.cache=debug
相关推荐
spring4.04,springmvc, hibernate4.3 ,JPA2.1, shiro1.2, ehcache2 完全整合,用Ehcache做缓存,通用的DAO、Service接口和实现。完全注解配置,事务拦截方式处理。C0p3做连接池,JSP和Freemarker做View的模板。Shiro...
绝对的物超所值, spring,springmvc,hibernate,jpa2,ehcache,activemq,redis,全局异常拦截统一处理,附件上传下载,史上最全的代码基础框架集成等。
Spring3.2 Hibernate4.2 JPA2全注解实例.采用JTA事务管理,配置ehcache为二级缓存,在glassfish3.2.2和postgresql9测试通过。参考网上的资料整理。
hibernate-ehcache-4.1.12.Final.jar hibernate-entitymanager-4.1.12.Final.jar hibernate-jpa-2.0-api-1.0.1.Final.jar hibernate-search-4.2.0.Final.jar hibernate-search-analyzers-4.2.0.Final.jar hibernate-...
hibernate-ehcache-5.1.0.Final.jar hibernate-entitymanager-5.1.0.Final.jar hibernate-envers-5.1.0.Final.jar hibernate-c3p0-5.1.0.Final.jar hibernate-jpa-2.1-api-1.0.0.Final.jar hibernate-java8-5.1.0....
hibernate-ehcache-4.1.12.Final.jar hibernate-entitymanager-4.1.12.Final.jar hibernate-jpa-2.0-api-1.0.1.Final.jar hibernate-search-4.2.0.Final.jar hibernate-search-analyzers-4.2.0.Final.jar hibernate-...
该项目基于Spring 3.1.3, Spring MVC, Hibernate 4.1.7, EhCache, Spring Data JPA 1.1.0, MySQL 5, Spring Security 3.1.3, Spring Mail, Recapcha等技术实现了网站注册、登录系统。项目包含了详尽的配置信息。 ...
DWR3.0 Spring3.2 Hibernate4.2 JPA全注解实例。采用JTA事务管理,配置ehcache为二级缓存,在glassfish3.2.2和postgresql9测试通过。参考网上的资料整理。.
hibernate-c3p0-4.3.8.Final hibernate-commons-annotations-4.0.5.Final.jar hibernate-core-4.3.8.Final.jar hibernate-ehcache-4.3.8.Final.jar hibernate-jpa-2.1-api-1.0.0.Final.jar
JAVAWEB各种配置文件加常用操作(spring strut2 jpa hibernate jdbc jndi springMVC velocity ant log4j ehcache等各种配置文件及常用操作),相信对你的开发一定会有很大的帮助!
hibernate-jpa-2.0-api-1.0.1.Final-sources.jar hibernate-search-analyzers-4.1.1.Final-sources.jar hibernate-search-engine-4.1.1.Final-sources.jar hibernate-search-orm-4.1.1.Final-sources.jar hibernate-...
本版本全面更新了jar包,全部使用了当前最新版本的jar包,struct2.1.8 spring3 hibernate3.5,全面使用注解取代xm的l配置。 另外增加了一个ant构建脚本,支持使用hudson完成每日构建,持续集成,自动测试,代码规范...
commons-logging-1.1.1.jar,dom4j-1.6.1.jar,ehcache-1.5.0.jar,hibernate3.jar,hibernate-jpa-2.0-api-1.0.0.Final.jar,javassist-3.12.0.GA.jar,jta-1.1.jar,slf4j-api-1.6.1.jar,slf4j-log4j12-1.6.1.jar...
添加Hibernate3.6的核心类库,包含:hibernate3.jar、antlr-2.7.6.jar、cglib-nodep-2.1_3.jar、commons-collections-3.1.jar、dom4j-1.6.1.jar、ehcache-1.5.0.jar、hibernate-jpa-2.0-api-1.0.0.Final.jar、...
hibernate-jpa-2.1-api-1.0.0.Final.jar hibernate-jpamodelgen-5.0.7.Final.jar hibernate-osgi-5.0.7.Final-karaf.xml hibernate-osgi-5.0.7.Final.jar hibernate-proxool-5.0.7.Final.jar infinispan-...
hibernate-annotations 3.4.0; hibernate-commons-annotations-3.1.0; hibernate-core-3.3.1.GA; hibernate-ehcache-3.3.1; hibernate-jpa-2.0-api-1.0.1;hibernate3.6.10;
入门级功能:包括属性(配置),JDBC模板(数据库CRUD),JPA(Hibernate数据库CRUD),Mybatis(数据库CRUD),Mybatis(Mybatis数据库CRUD),thymeleaf(模板解析),beetl(模板解析),freemarker (模板解析)...
技术选择说明:管理 maven依赖和项目管理 git/svn 版本控制后端 Spring SpringMVC Spring data jpa(hibernate实现) Shiro 验证框架 hibernate validator 缓存 ehcache 数据源 druid servlet 3.0+前端 jsp 验证码 ...
使用的技术: 持久性 - 带有Hibernate的 Spring 数据 jpa,用于连接池的 c3po,mysql。 Spring mvc - 它提供了模型-视图-控制器架构和现成的组件,可用于开发灵活且松散耦合的 Web 应用程序,并公开其他服务。 缓存...
struts2.3.8spring3.2.1hibernate4.2.0最新整合 ehcache-2.7.0.jar xwork-core-2.3.8.jar spring-aop-3.2.1.RELEASE.jar hibernate-jpa-2.0-api-1.0.1.Final.jar