Spring的AOP理解

 AOP

AOP:面向切面编程,是对OOP的补充,不改变目标代码方法的前提,增强目标方法

OOP:面向对象编程

 那么就可以知道,AOP是OOP的延续,是Spring框架中的一个重要内容,利用AOP可以对业务逻辑的各个部分进行隔离,从而使得业务逻辑各部分之间的耦合度降低,提高程序的可重用性,同时提高了开发的效率。

 AOP的理想运行图如下:

 即,在不修改源代码的情况下,给程序统一添加额外功能的一种技术。

 

使用场景

 那么根据AOP的特性,可以猜出AOP的使用场景

  • 事务控制
  • 日志记录
  • 权限控制
  • 性能分析
  • 缓存

Spring框架有两大核心:

  • IOC/DI:依赖对象之间的解耦
  • AOP:目标类与增强类的解耦,横切面的解耦

 

总结

AOP 采取横向抽取机制(动态代理),取代了传统纵向继承机制的重复性代码,其应用主要体现在事务处理、日志管理、权限控制、异常处理等方面。

主要作用是分离功能性需求和非功能性需求,使开发人员可以集中处理某一个关注点或者横切逻辑,减少对业务代码的侵入,增强代码的可读性和可维护性。

 

AOP的配置--基于XML文件配置

切入点表达式: 方法签名描述

方法签名: 访问修饰符 返回值类型 [包.类.]方法名(参数列名) throws 异常声明;

语法:

execution(修饰符? 返回值 方法名(参数) 异常?)

注意:

?: 0或者1个

通配符:

*: 任意 返回值, 方法名, 类名

..: 任意 包中使用: ..: 表示该包,以及该包后代包 参数: ..: 任意个数,任意类型的参数

 

AOP配置-基于注解

在增强方法上提供相关的注解:

@Before: 前置增强配置

@AfterThrowing: 异常增强配置

@AfterReturning: 后置增强配置

@After: 最终增强配置

@Around: 环绕增强配置

@Aspect: 标记类是一个通知类

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

梦雨Chili

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值