在Hibernate的属性里设置hibernate.generate_statistics为true.
<prop key="hibernate.generate_statistics">true</prop>
编写切面类PerformanceInfo.java
org.hibernate.stat.Statistics包含统计信息,如二级缓存等.根据需要记录相应内容.
package ssh.core;
import javax.servlet.ServletContext;
import org.apache.log4j.Logger;
import org.apache.struts2.ServletActionContext;
import org.hibernate.SessionFactory;
import org.hibernate.stat.Statistics;
import org.springframework.context.ApplicationContext;
import org.springframework.web.context.support.WebApplicationContextUtils;
public class PerformanceInfo {
Logger log = Logger.getLogger(this.getClass());
public void printInfo(){
SessionFactory sf = (SessionFactory) getBean("sessionFactory");
printHibernateStatistics(sf.getStatistics());
}
private void printHibernateStatistics(Statistics statistics){
log.debug(statistics);
}
public static Object getBean(String beanName){
ServletContext servletContext = ServletActionContext.getServletContext();
ApplicationContext ctx = WebApplicationContextUtils.getWebApplicationContext(servletContext);
return ctx.getBean(beanName);
}
}
配置Spring AOP
修改applicationContext.xml
加入切面类
<bean id="performanceInfo" class="ssh.core.PerformanceInfo"/>
AOP,根据需要修改execution以及切面类的method
<aop:config>
<aop:aspect id="performance" ref="performanceInfo">
<aop:pointcut id="allDAO" expression="execution(* ssh.dao.*.*.*(..))"/>
<aop:after method="printInfo" pointcut-ref="allDAO"/>
</aop:aspect>
</aop:config>
日志记录Log4j配置详见 http://gary0416.iteye.com/blog/857139
部分运行结果
2011-03-19 07:50:50 DEBUG [ssh.core.PerformanceInfo.printHibernateStatistics(PerformanceInfo.java:35)] - Statistics[start time=1300492114615,sessions opened=7,sessions closed=6,transactions=10,successful transactions=5,optimistic lock failures=0,flushes=1,connections obtained=6,statements prepared=7,statements closed=7,second level cache puts=21,second level cache hits=2,second level cache misses=0,entities loaded=21,entities updated=1,entities inserted=0,entities deleted=0,entities fetched=0,collections loaded=0,collections updated=0,collections removed=0,collections recreated=0,collections fetched=0,queries executed to database=6,query cache puts=0,query cache hits=0,query cache misses=0,max query time=297]
分享到:
相关推荐
在本示例中,我们将探讨如何整合Spring AOP(面向切面编程)与Hibernate ORM框架,并利用它们来实现事务管理,模拟一个简单的买书过程。这个过程将涉及到数据库操作,事务的开始、提交和回滚,以及AOP在处理事务中的...
本资源提供的"软件依赖包(Spring AOP+Hibernate Transaction)"正是这样一种集合,它包含了Spring AOP和Hibernate Transaction管理的jar文件,使得开发者能够便捷地在Java应用中实现面向切面的编程(AOP)以及事务...
在IT行业中,Spring框架是Java企业...通过以上步骤,你可以成功地在Spring框架中整合Hibernate,并利用AOP进行事务管理,实现高效、稳定的Java企业级应用开发。在实际开发中,还需要根据项目需求进行适当的调整和优化。
在Spring框架中,AOP(面向切面编程)被广泛用于事务管理,特别是与ORM(对象关系映射)框架如Hibernate结合使用时。本篇文章将深入探讨如何在Spring AOP中实现Hibernate事务管理,以及这一过程中的关键概念和技术...
Spring MVC、Spring AOP、Spring Security和Hibernate是Java开发中常用的四大框架,它们各自负责不同的领域,但在实际项目中往往需要进行整合以实现更高效、更安全的开发。本实例代码提供了一个完整的整合示例,涵盖...
本篇文章将重点讨论如何在Spring框架中集成Hibernate,并探讨编程式事务管理和Spring AOP的声明式事务。 首先,让我们理解Spring与Hibernate的集成。为了整合这两个库,你需要在Spring配置文件中定义Hibernate的...
本教程将详细介绍如何在Spring框架中利用AOP实现对Hibernate的自动事务管理,以便于提升开发效率和代码的可维护性。 首先,理解Spring AOP的核心概念。AOP允许程序员定义"切面",这些切面可以包含业务逻辑的各个...
标题中的"Spring+Hibernate+junit+aop"是一个经典的Java企业级开发组合,这些技术都是Java后端开发中的重要组成部分。让我们逐一深入理解这些知识点: 1. **Spring**:Spring 是一个开源的应用框架,核心功能包括...
综上所述,这个基础包提供了开发SSH整合项目的基础环境,开发者可以根据具体的业务需求,编写Action、Service、DAO层的代码,并利用Spring的AOP进行事务管理,从而构建出高效的企业级应用。同时,由于SSH的广泛使用...
Spring框架是一个全面的后端开发框架,而Hibernate则是一个流行的对象关系映射(ORM)工具,它简化了数据库操作,将Java对象直接映射到数据库记录。两者结合,可以实现高效、灵活的数据管理。 Spring框架提供了多种...
同时,Spring的AOP模块支持切面编程,可以实现事务管理、日志记录等功能。在Struts1.2和Hibernate3.2集成中,Spring可以作为它们之间的粘合剂,比如管理Action的生命周期,提供数据访问的事务控制。 再来看...
“工具”标签可能暗示这篇博客还介绍了与Spring AOP相关的辅助工具或实践技巧,例如如何利用AspectJ编译时或运行时 weaving,或者使用Spring AOP与其他工具(如Log4j、Hibernate)集成的方法。 综上所述,Spring ...
在Spring4中整合Hibernate4,可以利用Spring的Transaction Management来处理事务,无需在代码中显式调用事务开始和提交。 在这个整合例子中,你需要配置Spring的ApplicationContext,定义数据源、SessionFactory...
6. **AOP整合**:Spring的AOP支持可以方便地实现日志记录、性能监控、权限控制等功能,而无需侵入业务代码。 在实际集成过程中,开发者需要配置Spring的Hibernate模板或JPA支持,创建SessionFactory或...
Spring4.0+Hibernate4.0+Struts2.3整合案例:实现增删改查。 ===================== application.xml: xmlns="http://www.springframework.org/schema/beans" xmlns:xsi=...
开发者可以利用Spring的DI和AOP来管理对象的生命周期,使用Spring MVC构建Web层,通过Hibernate进行数据持久化操作。同时,两者都支持大量的社区插件和扩展,如MyBatis、Thymeleaf等,进一步丰富了开发工具和功能...
在将AOP与Hibernate结合使用时,我们通常会利用Spring AOP框架,因为Spring不仅支持AOP,还提供了对Hibernate的良好集成。Spring AOP允许我们在方法执行前后插入自定义的行为,如记录日志、进行事务控制等,而无需在...
总的来说,Spring与Hibernate的集成能够充分利用各自的优势,使得Java应用的开发更加便捷。通过Spring对Hibernate的管理,我们可以更好地控制事务、实现解耦,同时降低出错的可能性。此外,Spring的AOP支持使得事务...
在本教程中,我们将深入探讨如何使用Spring MVC、Spring和Hibernate三大框架进行全注解的整合开发。这个视频教程系列的第11部分,重点可能是建立在前几部分的基础之上,进一步深化对这三个核心技术的理解和实践。 ...