Spring 框架中AOP的基本理解

·AOP(Aspect-Oriented Programming:面向切面编程):将那些与业务无关,却为业务模块所共同调用的逻辑(例如事务处理、日志管理、权限控制等)封装抽取成一个可重用的模块,这个模块被命名为“切面”( Aspect ),便于减少系统的重复代码,降低模块间的耦合度,并有利于未来的可拓展性和可维护性;

AOP的作用:AOP可以拦截指定的方法,并且对方法增强,比如:事务、日志、权限、性能监测等增强,而且无需侵入到业务代码中,使业务与非业务处理逻辑分离。

AOP的组成:

AOP由连接点,切点和通知组成

  1. 连接点(Joinpoint):程序中能够被切面插入的点,典型的连接点包括方法调用、方法执行过程中的某个时点等等。

  2. 通知(Advice):在连接点处执行的代码。通知分为各种类型,如前置通知、后置通知、环绕通知,异常通知。

  3. 切点(Pointcut):用于定义哪些连接点上应该应用通知。切点通过表达式进行定义,如匹配所有 public 方法或匹配某个包下的所有方法等。

Spring AOP 基于动态代理实现:

如果被代理的对象,已经实现某个接口,则 Spring AOP 会使用 JDK Proxy (反射),
基于接口的方式,创建代理对象(JDK 动态代理的核心是InvocationHandler 接口和 Prox
y类);

如果被代理的对象,没有实现某个接口,就无法使用 JDK Proxy 去进行代理了,这时候 Spri
ng AOP 会使用 cglib,基于继承的方式,生成一个被代理对象的子类来作为代理( cgli
b 动态代理的核心是 MethodInterceptor 接口和 Enhancer 类);

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值