SpringAop:面向切面编程(Aspect Oriented Programming)提供了另一种角度来思考程序的结构,通过这种方式弥补面向对象编程(Object Oriented Programming)的不足。除了类以外,AOP提供了切面,切面对关注点进行模块化,例如横切多个类型和对象的事务管理(这些关注点术语通常称作横切(crosscutting)关注点)。Spring AOP是Spring的一个重要组件,但是Spring IOC并不依赖于Spring AOP,这意味着你可以自由选择是否使用AOP,AOP提供了强大的中间件解决方案,这使得Spring IOC更加完善。我们可以通过AOP来实现日志监听,事务管理,权限控制等等。

  • 首先是SpringAop的初始化过程:

SpringAOP 浅析

这里只要用到的类是AnnotationConfigApplicationContext 。

  • 其次是SpringAop主要包括哪些方面:

SpringAOP 浅析

SpringAOP 浅析 

上面的图切点表示的是一个方法里面的类,多个切点就组成了一个切面,而前面就是有增强(Advice)生成的。最后再织入到aop中。

SpringAOP 浅析

  • SpringAop底层实现:
  1. ​​​​​​​java动态代理 proxy(需要实现接口)。实现动态代理是通过 invoke方法,生成字节码文件。
  2. cglib (不需要实现接口)。

其中java动态代理的优先级高于cglib

 

 

相关文章:

  • 2022-02-21
  • 2022-12-23
  • 2022-01-07
  • 2021-10-26
  • 2021-07-08
  • 2021-08-20
猜你喜欢
  • 2021-09-25
  • 2021-11-17
  • 2021-10-27
  • 2021-07-12
  • 2021-07-30
  • 2021-08-25
  • 2021-09-20
相关资源
相似解决方案