具体思路:
1.导包
在pom文件中导入aop和aspect的包
当导入context时aop的包已经自动导入,只需导入aspect即可
2.制作连接点
Dao接口
实现类
3.抽出共性部分
新建一个类用于抽出共性部分单独操作,命名为MyAdvice
①在MyAdvice中新建方法Mothod()写入共性功能
②再先写一个空方法,代表需要添加共性功能的方法,如用pt()方法代表需要添加共性功能的update()方法。
4.定义切入点
@Pointcut("execution(切入点位置)");
5.绑定切入点和通知之间的关系(切面)
@Before(“pt()”)表示功能在方法前进行
6.添加注解
在MyAdvice中添加
@Component(交给spring管理)
@Aspect(让系统把它当成aop处理)
在配置类中添加
@EnableAspectJAutoProxy(告诉spring有注解开发的aop,相当于Aspect)
AOP切入点表达式
AOP通知获取数据
环绕通知
添加注解@Around (“pt()”)
因为要围绕原始操作,要调用原始操作
在共性方法里写参数ProceedingJoinPoint pjp,方法体里用pjp.proceed()调用
当原始操作有返回值时,仍需要返回值
首先把类型void改为Object
其次需要定义一个值接住返回值