统计业务方法耗时【项目 商城】

简介: 统计业务方法耗时【项目 商城】

统计业务方法耗时

检测项目所有的业务层方法的耗时(开始执行时间和结束执行之差),在不改变项目主体流程代码的前提条件完成此功能。

AOP

面向切面编程。它并不是Spring框架的特性,Spring很好的支持AOP编程。

如果我们相对业务某一些方法同时添加相同的功能需求,并且在不改变原有的业务功能逻辑的基础上进行完成,可以使用AOP的切面编程进行开发。
首先定义一个类,将这个类作为切面类。

在这个类中定义切面方法(5类)。

将这个切面方法的业务逻辑要执行的代码进行编写和设计。

通过连接点来连接目标方法,就是用粗粒度表达式和细粒度表达式进行连接。

切面方法

1.切面方法修饰符必须是public。

2.切面方法的返回值可以是void和Object。如果这个方法被Around注解修饰词方法必须声明为Object类型,反之随意。

3.切面方法的方法名称可以自定义。

4.切面方法可以接受参数,参数是ProceedingJoinPoint接口类型的参数。但是@Around所修饰方法必须要传递这个参数,其他随

统计业务方法时长功能

1.AOP不是Spring的内部封装的技术,所以使用要进行导包操作。

    <dependency>
            <groupId>org.aspectj</groupId>
            <artifactId>aspectjweaver</artifactId>
        </dependency>
        <dependency>
            <groupId>org.aspectj</groupId>
            <artifactId>aspectjtools</artifactId>
        </dependency>

2.定义一个切面类。

aop | TimerAspect

package com.cy.store.aop;
import org.aspectj.lang.ProceedingJoinPoint;
import org.aspectj.lang.annotation.Around;
import org.aspectj.lang.annotation.Aspect;
import org.springframework.stereotype.Component;
@Component//将当前类的对象创建使用维护交由Spring容器维护
@Aspect//将此类标记为切面类
public class TimerAspect {
}

3.定义切面方法,使用环绕通知的方式进行编写。ProceedingJoinPoint接口表示连接点,目标方法的对象。

   public Object around(ProceedingJoinPoint pjp) throws Throwable {
        // 先记录起始时间
        long start = System.currentTimeMillis();
        // 执行连接点方法,即切面所在位置对应的方法。本项目中表示执行注册或执行登录等
        Object result = pjp.proceed();//调用目标方法
        // 后记录结束时间
        long end = System.currentTimeMillis();
        // 计算耗时
        System.err.println("耗时:" + (end - start) + "ms.");
        // 返回连接点方法的返回值
        return result;
    }

4.将当前的环绕通知映射到某个切面上。

    @Around("execution(* com.cy.store.service.impl.*.*(..))")

5.启动项目,随机去访问任意功能模块。

READ–统计业务方法耗时

相关文章
|
4月前
|
存储 算法 大数据
指标类需求问题之在商品开发和运营过程中,减少指标计算以节省人效要怎么操作
指标类需求问题之在商品开发和运营过程中,减少指标计算以节省人效要怎么操作
|
NoSQL Redis
淘东电商项目(75) -秒杀系统(用户操作频率限制)
淘东电商项目(75) -秒杀系统(用户操作频率限制)
57 0
eggjs 怎么实现月度账单统计接口?
eggjs 怎么实现月度账单统计接口?
93 0
eggjs 怎么实现月度账单统计接口?
|
存储 Java BI
传智健康项目中相关知识点介绍(如图片存储,发送短信,定时调度,统计报表...)(一)
传智健康项目中相关知识点介绍(如图片存储,发送短信,定时调度,统计报表...)
传智健康项目中相关知识点介绍(如图片存储,发送短信,定时调度,统计报表...)(一)
|
SQL 存储 Java
传智健康项目中相关知识点介绍(如图片存储,发送短信,定时调度,统计报表...)(四)
传智健康项目中相关知识点介绍(如图片存储,发送短信,定时调度,统计报表...)
传智健康项目中相关知识点介绍(如图片存储,发送短信,定时调度,统计报表...)(四)
|
存储 Web App开发 JavaScript
传智健康项目中相关知识点介绍(如图片存储,发送短信,定时调度,统计报表...)(二)
传智健康项目中相关知识点介绍(如图片存储,发送短信,定时调度,统计报表...)
传智健康项目中相关知识点介绍(如图片存储,发送短信,定时调度,统计报表...)(二)
|
XML 存储 开发框架
传智健康项目中相关知识点介绍(如图片存储,发送短信,定时调度,统计报表...)(三)
传智健康项目中相关知识点介绍(如图片存储,发送短信,定时调度,统计报表...)
传智健康项目中相关知识点介绍(如图片存储,发送短信,定时调度,统计报表...)(三)
|
分布式计算 大数据 开发者
电商项目之总体运营指标统计表执行 Log 讲解|学习笔记
快速学习电商项目之总体运营指标统计表执行 Log 讲解
电商项目之总体运营指标统计表执行 Log 讲解|学习笔记
|
大数据 开发者
电商项目之支付类指标统计表分析|学习笔记
快速学习电商项目之支付类指标统计表分析
|
大数据 开发者
电商项目之交易类指标统计表分析|学习笔记
快速学习电商项目之交易类指标统计表分析
下一篇
无影云桌面