AOP概念
什么是AOP
面向切面编程(方面),利用AOP可以对业务逻辑的各个部分进行隔离,从而使的业务逻辑各个部分之间的耦合度降低,提高程序的可重用性,同时提高了开发的效率
通俗描述: 不通过修改代码的方式在主干功能中添加新功能...CGLIB动态代理
第二种,没有接口情况,使用CGLIB动态代理
创建子类的代理对象,增强类的方法
image.png
AOP(JDK动态代理)
使用JDK动态代理,使用Proxy类里面的方法创建代理对象...,这些方法称为连接点
切入点
实际被增强的方法,称为切入点(如果一个被里面4个方法都可以被增强,我只对其中两个进行增强,这个两个方法被称为切入点)
通知(增强)
实际增强的逻辑部分称为通知(增强)
通知的类型...异常通知是只有在方法抛异常的时候才会执行
手动修改代码模拟异常
修改User类的add方法
public void add(){
int i = 5/0;
System.out.println...可以看出来在报错之后走到了异常通知,但是后置通知和环绕之后没有走
注解总结
@Aspect : 标识这是一个aspect类
@Before : 前置通知
@AfterReturning : 后置通知(返回通知