Spring----AOP

简介

 面向切面编程Aspect-Oriented Programming(AOP),是将与业务无关,却被业务所共用的逻辑抽取出来,以便于降低模块之间的耦合度。
 AOP把系统分为两个部分:核心关注点和横切关注点。业务代码就是核心关注点,而与业务代码不太相关的就是横切关注点。

相关概念

  1. 切面: 对横切关注点的抽象
  2. 横切关注点: 对哪些方法进行拦截,拦截后的怎么处理,这些关注点称之为横切关注点。
  3. 连接点: 被拦截到的方法。
  4. 切入点: 对连接点进行拦截的定义
  5. 通知:拦截到连接点之后要执行的代码,分为前置、后置、异常、最终、环绕通知五类。
  6. 目标对象: 代理的目标对象。
  7. 织入: 将切面应用到目标对象并导致代理对象创建的过程。
  8. 引入: 在不修改代码的前提下,引入可以在运行期间为类动态地添加一些方法或字段。

AOP两种代理方式

  1. JDK动态接口代理
     Proxy利用InvocationHandler动态创建一个符合某一接口的实例,生成目标类的代理对象。
  2. Cglib动态代理
     可以在运行期扩展Java类与实现Java接口,Cglib封装了asm,可以在运行期动态生成新的class。和JDK动态代理相比较:JDK创建代理有一个限制,就是只能为接口创建代理实例,而对于没有通过接口定义业务方法的类,则可以通过Cglib创建动态代理。

应用场景

  1. Authenticaiotn 权限
  2. Caching 缓存
  3. Error handling 错误处理
  4. Lazy loading 懒加载
  5. Debugging 调试
  6. logging, tracing, profiling and monitoring 记录跟踪、优化、校准
  7. Transaction 事务
  8. Synchronization 同步

参考

https://segmentfault.com/a/1190000007469968

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值