开发学习十七——案例之测量业务层接口执行效率

核心提示一、需求分析这个需求比较简单需求:任意业务层接口执行均可显示其执行效率这个的目的是查看每个业务层执行的时间,这样就可以监控出哪个业务比较耗时,将其查找出来方便优化。具体实现的思路: 开始执行方法之前记录一个时间 执行方法 执行完方法之后记录

第一,需求分析

这个要求相对简单

要求:可以显示任何业务层接口的执行效率。

这样做的目的是检查每个业务层的执行时间,以便您可以监控哪些业务是耗时的,并找出它进行优化。

具体实施思路:

开始该方法前记录时间。

执行方法

记录执行方法后的时间。

减去上一次和上一次的差,这就是我们需要的结果。

因此,要在方法执行前后添加服务,我们将在分析后采用环绕通知。

注意:如果原方法只执行一次,时间太快,两种方法的时差可能是0,所以我们要执行一万次来计算时差。

二。环境准备

创建一个Maven项目

向pom.xml添加Spring依赖项

添加AccountService、AccountServiceImpl、AccountDao和Account类。

资源提供了包含以下数据的jdbc.properties

jdbc.driver=com.mysql.jdbc.Driver jdbc.url=jdbc:mysql://localhost:3306/spring_db useSSL=false jdbc.username=root jdbc.password=root

创建相关的配置类。

为Spring编写一个测试类来集成Junit

最终的项目结构如下:

第三,功能开发

第一步:打开SpringAOP的标注功能

在Spring的主配置文件的SpringConfig类中添加注释。

@EnableAspectJAutoProxy

步骤2:创建AOP的通知类

要被Spring管理,需要添加@Component。

要将这个类标识为AOP的facet类,需要添加@Aspect

要配置切入点表达式,需要添加一个方法和@Pointcut。

步骤3:添加环绕通知

向runSpeed方法添加@Around

注意:目前没有进行任何增强。

第四步:完成核心业务,记录一万次的执行时间。

步骤5:运行单元测试类。

注意:由于程序每次执行的持续时间不一样,所以运行多次的最终结果也不一样。

第六步:程序优化

目前程序面临的问题是,多种方法一起测试时,控制台打印:

业务层接口万次执行时间:xxxms

我们没有办法说出哪个接口和哪个方法会在什么时候执行,如何优化。

步骤7:运行单元测试类。

资料来源:file/tupian/20220910/16412319.html

 
友情链接
鄂ICP备19019357号-22