`

系统运行情况统计 通过AOP切面编程的方式监控请求与DAO交互的次数

    博客分类:
  • SSH
 
阅读更多

--监控com.zte..hibernate3impl.*Impl 这个包下面的所有文件的所有方法,配置了一个事物

<aop:advisor pointcut="execution(* com.zte..hibernate3impl.*Impl.*(..))" advice-ref="txAdvice" />

 

<bean id="dbCallMonitor" class="com.zte.frame.web.servlet.DbCallMonitor" />


<aop:config>
 <aop:pointcut id="around"
  expression="execution(* com.zte..hibernate3impl.*Impl.*(..))" />
 <aop:aspect ref="dbCallMonitor">
  <aop:around method="around" pointcut-ref="around" />  --这个around是对上面的around的引用
 </aop:aspect>
</aop:config>
<property name="proxyTargetClass" value="false" />

 

public class DbCallMonitor {

 protected final Logger log = Logger.getLogger(DbCallMonitor.class);

 public Object around(ProceedingJoinPoint pjp) throws Throwable {
  synchronized (this) {
   Class<?> targetClass = pjp.getTarget().getClass();
   MethodSignature sign = (MethodSignature) pjp.getSignature();
   String method = sign.getMethod().getName();
   String clazz = targetClass.getName();
   StopWatch stopWatch = new Log4JStopWatch(clazz + "."
     + method);
   // 构建数据入库
   Object obj = null;
   try {
    long begin = System.currentTimeMillis();
    obj = pjp.proceed();
    long end = System.currentTimeMillis();
    // 构建数据
    DbCallMonitorSingleton.getInstance().buildData(clazz, method, end - begin);
   } catch (Throwable ex) {
    log.error("DbCallMonitor Exception : ", ex);
    throw ex;
   }
   stopWatch.stop();
   return obj;
  }

 

 

// 将查询出的对象剔除事务,已确保不会被Hibernate事务自动更新
  if(null != d) {
   this.getSession().evict(d);
  } 

分享到:
评论
发表评论

文章已被作者锁定,不允许评论。

相关推荐

    spring AOP 切面日志 分层打日志

    在Spring框架中,AOP(面向切面编程)是一种强大的工具,它允许我们在不修改源代码的情况下,对程序进行横向关注点的插入,比如日志记录、事务管理、权限检查等。在这里,我们重点关注如何利用Spring AOP实现分层...

    spring_aop.rar_spring-dao

    在IT行业中,Spring框架是Java开发中...通过这个例子,开发者可以学习到如何在Spring环境中声明和使用DAO,以及如何创建和配置AOP切面以实现控制反转。这将有助于提升开发效率,降低代码间的耦合度,并使系统更加健壮。

    使用使用切面的方式记录日志springMvc + hibernate

    在IT行业中,Spring框架是Java开发中的一个核心组件,它提供了丰富的功能,包括依赖注入、面向切面编程(AOP)以及与各种技术的集成,如Spring MVC和Hibernate。本项目"使用切面的方式记录日志springMvc + hibernate...

    Spring框架Jar包里面有ioc、aop、mvc、dao、orm几项

    Spring框架是Java开发中最常用的轻量级开源框架之一,它为开发者提供了强大的依赖注入(IOC)、面向切面编程(AOP)、模型视图控制器(MVC)、数据访问/对象关系映射(DAO/ORM)等功能。以下是这些核心概念的详细...

    springAOP实现数据字典.zip

    在IT行业中,Spring AOP(面向切面编程)是一种强大的工具,它允许开发者在不修改原有业务代码的情况下,对程序进行功能增强或监控。在这个"springAOP实现数据字典.zip"压缩包中,我们主要关注的是如何利用Spring ...

    百知教育 — Spring系列课程 — AOP编程1

    在本课程“百知教育 — Spring系列课程 — AOP编程1”中,主要探讨的是Spring框架中的面向切面编程(AOP)概念及其应用。面向切面编程是Java EE开发中一个重要的技术,它允许开发者将关注点分离,将横切关注点(如...

    spring-aop.rar_java aop_spring aop

    【标题】"spring-aop.rar_java aop_spring aop" 涉及的主要知识点是Spring框架中的面向切面编程(AOP)以及Java基础知识。这个压缩包可能包含了一个简单的Spring AOP应用示例,同时也涵盖了Java的一些核心概念,如...

    spring的aop方式,审计记录用户操作步骤服务,mysql数据库

    在Spring框架中,AOP(面向切面编程)是一种强大的工具,用于实现关注点的分离,使得我们可以将系统中的核心业务逻辑与横切关注点,如日志、事务管理、安全控制、审计等,解耦合。在这个场景中,我们讨论的是如何...

    基于java语言,ssm框架开发CS远程监控系统软件(源代码+LW).zip

    它通过依赖注入(DI)和面向切面编程(AOP)的概念,使代码更加松耦合,易于测试和维护。Spring还提供了数据访问、事务管理、邮件服务等多种功能模块。 2. **Spring MVC**:Spring MVC是Spring框架的一部分,用于...

    SpringAOP整合Hibernate并使用事务(模拟买书的过程)

    在本示例中,我们将探讨如何整合Spring AOP(面向切面编程)与Hibernate ORM框架,并利用它们来实现事务管理,模拟一个简单的买书过程。这个过程将涉及到数据库操作,事务的开始、提交和回滚,以及AOP在处理事务中的...

    seasar框架S2Dao使用指南

    5. **接口与实现分离**:用户只需要定义DAO接口,S2Dao会通过AOP(面向切面编程)自动生成实现类。 6. **事务管理**:支持自动和手动事务处理,提供了一套完整的事务控制机制。 【S2Dao的安装及基本概念】 1. **...

    AOP.rar_java aop_oracle

    Java AOP(面向切面编程)是一种编程范式,它允许程序员定义“切面”,这些切面封装了特定关注点的实现,如日志、事务管理或安全性。在本示例中,`AOP.rar` 文件显然包含了与Java AOP相关的代码实现,可能是为了改善...

    springboot集成mybaits、druid、pagehelper,aop事物

    本项目主要讲述了如何将Spring Boot与MyBatis、Druid和PageHelper集成,同时提到了AOP(面向切面编程)以及事务管理,另外还提及了后续可能集成的Swagger和多数据源技术。 首先,Spring Boot与MyBatis的集成是为了...

    struts2+hirbenate+SpringAOP

    而Spring AOP则是Spring框架的一部分,提供了面向切面编程的能力,允许我们定义横切关注点,如日志、事务管理等。 在这个实际案例中,Struts2、Hibernate和Spring AOP被集成使用,构建了一个完整的Web应用。以下是...

    SpringMVC+springAOP+spring security+Hibernate整合实例代码

    2. Spring AOP:AOP(面向切面编程)允许开发者定义“切面”,即关注点的模块化,如日志、事务管理等。Spring AOP通过代理模式实现了这一概念,可以在不修改原有代码的情况下,在运行时向目标对象添加额外的行为。在...

    使用代理实现Hibernate Dao层自动事务

    在Hibernate中,我们可以利用Spring框架的AOP(面向切面编程)和Transaction Proxy来实现这一功能。 1. Spring AOP:AOP允许我们在程序运行时,动态地将一些关注点(如事务管理)插入到目标对象的方法调用中。通过...

    Mybatis_dao.rar_mybatis dao_mybatis_dao.rar

    - **Spring3.0**:Spring作为企业级Java应用的全能框架,不仅提供了依赖注入(DI)和面向切面编程(AOP),还有Spring JDBC和Spring ORM模块,可以很好地与Mybatis整合,管理DAO和事务。 在这个项目中,Spring3.0很...

    DAODAO网 模仿贴吧/论坛

    DAODAO网可能还使用了其他技术,如JSP(Java Server Pages)用于生成动态网页,MySQL作为数据库存储用户信息和帖子数据,使用Spring框架进行依赖注入和AOP(面向切面编程),以及使用Tomcat作为应用服务器。...

    DAO 数据访问对象

    在Spring框架中,提供了对DAO的支持,例如通过事务管理、AOP(面向切面编程)来增强DAO的性能和安全性。Spring的JdbcTemplate和HibernateTemplate等工具类简化了DAO的实现,使得开发者可以更专注于业务逻辑而不是...

    java SSH框架架构学习_笔记.struts,spring,hibernate. IOC,AOP,JDBC,编写个留言管理系统网站

    结合IOC(Inversion of Control,控制反转)、AOP(Aspect-Oriented Programming,面向切面编程)以及JDBC(Java Database Connectivity,Java数据库连接)技术,帮助读者理解并掌握如何构建一个留言管理系统网站。...

Global site tag (gtag.js) - Google Analytics