第一,需求分析
这个要求相对简单

要求:可以显示任何业务层接口的执行效率。
这样做的目的是检查每个业务层的执行时间,以便您可以监控哪些业务是耗时的,并找出它进行优化。
具体实施思路:
开始该方法前记录时间。
执行方法
记录执行方法后的时间。
减去上一次和上一次的差,这就是我们需要的结果。
因此,要在方法执行前后添加服务,我们将在分析后采用环绕通知。
注意:如果原方法只执行一次,时间太快,两种方法的时差可能是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


