面试问题之AOP实现原理


作用——
用于处理系统中分布的各个模块的横切关注点(如:事务管理、日志、缓存等),是使用动态代理实现,在内存中临时为增强某个方法生成一个AOP对象,该对象含有目标对象的所有方法,在特定的切入点做了增强处理,并回调原来的方法。
P:咋眼一看,不能直接理解很正常。


动态代理的实现——
主要分两种方式实现
1、JDK动态代理
原理说明——JDK动态管理通过反射接收被代理的类,该代理的类必须实现接口,核心是InvocationHandler 和 Proxy类。
2、Cglib动态代理
原理说明——Cglib通过继承方式实现动态代理,若该类是可以在 运行时动态生成某个类(具体我们要使用的类)的子类。
(P: Cglib是什么?—代码生成的类库,具体到相应软件上查看源码)


AOP在代码中能做什么?(面向HR)——
1、降低模块耦合度
2、使项目系统更容易扩展
3、规避了修改业务代码,规避引入重复代码,更好的复用某些代码。

AOP大致作用(面向程序员实现系统的业务作用)——
前置通知:XX方法调用前发通知
后置通知:XX方法完成后发通知

方法返回后通知:方法正常返回后,调用通知;方法调用后,正常退出发通知。

异常的通知:
抛出异常后通知(方法抛出异常退出时,执行的通知)
XX方法调用时,异常退出后发出的通知。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值