Aop的理解

62 阅读1分钟

Aop理解:

  • 面向切面编程,
  • 作用:在不惊动原始设计的基础上,进行功能增强

Aop的工作流程:

  • 1.Spring容器启动
  • 2.读取所有切面配置的切入点
  • 3.初始化bean,判定bean对应的类中的方法是否匹配到任意切入点 匹配成功后,创建原始对象的代理对象
  • 4.获取bean的执行方法
  • 获取的bean是代理对象时,根据代理对象的运行模式运行原始方法与增强的内容,完成操作。

Aop专业术语

  • Aspect(切面):描述通知与切入点的对应关系
  • Joinpoint(连接点):任意方法的执行
  • Pointcut(切入点):匹配连接点的式子,具有共性功能的方法描述
  • Advice(通知):若干个方法的共性功能,在切入点处执行,最终体现为一个方法
  • Target(目标对象):被代理的原始对象成为目标对象
  • Proxy(代理):SpringAop的核心本质是采用代理模式实现的

3.png

Aop通知类型(作用:绑定通知方法与切入点的关系)

  • @Before前置通知:通知方法在原始切入点方法前运行
  • @After后置通知:通知方法在原始切入点方法后运行
  • @Around环绕通知:通知方法在原始切入点方法前后运行,必须依赖形参ProceedingJoinPoint才能实现对原始方法的调用,如果接收返回值,许设置Object类型,并抛出Throwable对象
  • @AfterReturning后置通知:通知方法在原始切入点方法正常执行完毕后运行
  • @After Throwing异常通知:通知方法在原始切入点方法运行抛出异常后执行