1、横切关注点
对哪些方法进行拦截,拦截后怎么处理,这些关注点称之为横切关注点;
2、Aspect(切面)
通常是一个类,里面可以定义切入点和通知。
3、JoinPoint(连接点)
程序执行过程中明确的点,一般是方法的调用,被拦截到的点。因为Spring只支持方法类型的连接点,所以在Spring中连接点指的就是被拦截到的方法,实际上连接点还可以是字段或者构造器。
4、Advice(通知)
AOP在特定的切入点上执行的增强处理,有before(前置)、after(后置)、afterReturning(最终)、afterThrowing(异常)、around(环绕)。
5、Pointcut(切入点)
带有通知的连接点,在程序中主要体现在书写切入点表达式。
6、weave(织入)
将切面应用到目标对象并导致代理对象创建的过程。
7、introduction(引入)
在不修改代码的前提下,引入可以在运行期为类动态地增加一些方法或字段。
8、AOP代理(AOP Proxy)
AOP框架创建的对象,代理就是目标对象的加强。Spring中的AOP代理可以是JDK动态代理,也可以是CGLIB代理,前者基于接口,后者基于子类。
9、目标对象(Target Object)
包含连接点的对象,也被称作被通知或被代理对象,POJO。
三、Advice通知类型介绍
1、@Before
在目标方法被调用之前做增强处理,@Before只需要指定切入点表达式即可。
2、@After
在目标方法完成之后做增强,无论目标方法是否成功完成,@After可以指定一个切入点表达式。
3、@AfterReturning
在目标方法正常完成后做增强,@AfterReturning除了指定切入点表达式外,还可以指定一个返回值形参名returning,代表目标方法的返回值。
4、@AfterThrowing
主要用来处理程序中未处理的异常,@AfterThrowing除了指定切入点表达式外,还可以指定一个throwing的返回值形参名,可以通过该形参名来访问目标方法中所抛出的异常对象。
5、@Around
环绕通知,在目标方法完成前后做增强处理,环绕通知是最重要的通知类型,像事务、日志等都是环绕通知,注意编程中的核心ProceedingJoinPoint。
四、AOP的使用场景
1、Authentication 权限
2、Caching 缓存
3、Context passing 内容传递
4、
【一线大厂Java面试题解析+后端开发学习笔记+最新架构讲解视频+实战项目源码讲义】
浏览器打开:qq.cn.hn/FTf 开源分享
Error handling 错误处理