如何利用AOP实现业务层接口的执行效率
需求:任意业务层接口执行均可显示其执行效率(执行时长)
分析:
1.业务功能:业务层接口执行前后分别记录时间,求差值得到执行效率。
2.通知类型选择前后均可以增强的类型---环绕通知。
接下来在Spring整合JDBC以后的 代码上进行操作
首先看一下Spring整合JDBC以后的代码包含哪些内容:
①业务层接口:实现增删改查
②实现类增删改查:全部转调数据层
③数据层采用Mybatis注解开发的,注解已经把接口的映射都写上了。
没有实现类,自动代理出的实现类对象。
然后是jdbc.properties
对于配置来说:
SpringConfig.java里面加载了配置文件,加载了jdbc和Mybatis的配置。
jdbc里面有数据源:
Mybatis里面有两个bean
然后写了一个测试类,对这个程序进行测试:
测试查单个和查全部的方法。
运行以下这个方法看一下是什么效果:
接下来就开始说一下万次执行效率的问题:
第一步:
AOP注解打开:
第二步:
创建ProjectAdvice
上图注释:
1.@Component是为了受Spring控制
2.@Aspect为了让知道这是一个切面类
3.@Pointcut为了设置这个切入点
上图注释:
1.加上环绕通知注解@Around 后面加上切入点
2.将方法类型改为Object 并加上ProceedingJoinPoint pjp的参数 在方法里返回参数
3.抛出异常
截止到上面步骤为止,AOP已经加上了,但是还没有做任何增强操作。
上图内容的执行结果:
发现是在上图这里null的于是把两个打印都删除。
然后对类进行测试就会发现结果如下:
通过上图就可以拿到对应接口的对应方法的执行时间:
改成更规范的如下:
总信息: