SpringAOP 浅析

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

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

这里只要用到的类是AnnotationConfigApplicationContext 。

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

 

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

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

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

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值