本篇介绍什么是spring AOP, AOP的优点,使用场景,spring AOP的组成,简单实现AOP 并 了解它的通知;如有错误,请在评论区指正,让我们一起交流,共同进步!
AOP: 面向切面编程,也就是面向某一类编程,对某一类事情进行统一处理;
spring AOP: 是实现了AOP这种思想的一个框架;
使用:统一用户登录判断; 统一异常处理; 统一日志等等;
通知执行的顺序:环绕通知之前 > 前置通知 > 方法 > 方法返回后通知 > 后置通知 > 环绕通知之后
2.1 在springboot项目中,原有依赖 + 添加spring AOP 依赖
2.2 实现过程 定义切面 + 定义切点 + 定义通知
@Aspect // 定义切面
@Component //随框架启动,注入到容器中
public class UserAspect {
//定义切点 + 通知...
}
//定义切点, 对UserController进行拦截
@Pointcut("execution(* com.example.demo.controller.UserController.*(..))")
public void pointcut() {
}//空方法:方法名用于标识
切点表达式:识别该包下类下的任意方法,参数不限;
//前置通知
@Before("pointcut()")
public void doBefore() {
System.out.println("执行前置通知!");
}
//后置通知
@After("pointcut()")
public void doAfter() {
System.out.println("执行后置通知!");
}
//后置返回后的通知
@AfterReturning("pointcut()")
public void doAfterReturn() {
System.out.println("执行返回后通知!");
}//抛出异常后通知
@AfterThrowing("pointcut()")
public void doAfterThrow() {
System.out.println("执行抛异常后的通知!");
}
//环绕通知
//使用环绕通知:例如:统计时间,就可以使用环绕通知,将通知前 与 通知后 放在一起
@Around("pointcut()") //ProceedingJoinPoint:获取连接点;执行 =》返回框架,执行
public Object doAround(ProceedingJoinPoint joinPoint) throws Throwable {
System.out.println("执行环绕通知之前!");
Object result = joinPoint.proceed();
System.out.println("执行环绕通知之后");
return result;
}
✨✨✨各位读友,本篇分享到内容如果对你有帮助给个赞鼓励一下吧!!
感谢每一位一起走到这的伙伴,我们可以一起交流进步!!!一起加油吧!!!