Spring AOP

AOP

AOP是一种设计思想,是软件设计领域的面向切面编程。通过预编译方式和运行期动态代理方式,实现在不修改源代码的情况下给程序动态统一添加额外功能的一种技术。

preview

(参考图片)

AOP应用场景

实际项目中通常会将系统分为两大部分,一部分是核心业务,一部分是非核业务。在编程实现时我们首先要完成的是核心业务的实现,非核心业务一般是通过特定方式切入到系统中,这种特定方式一般就是借助AOP进行实现。

AOP就是要基于OCP(开闭原则),在不改变原有系统核心业务代码的基础上动态添加一些扩展功能并可以"控制"对象的执行。例如AOP应用于项目中的日志处理,事务处理,权限处理,缓存处理等等。如图所示

(参考图片) 

AOP 术语

在我们开始使用 AOP 工作之前,让我们熟悉一下 AOP 概念和术语。这些术语并不特定于 Spring,而是与 AOP 有关的。

描述
Aspect一个模块具有一组提供横切需求的 APIs。例如,一个日志模块为了记录日志将被 AOP 方面调用。应用程序可以拥有任意数量的方面,这取决于需求。
Join point在你的应用程序中它代表一个点,你可以在插件 AOP 方面。你也能说,它是在实际的应用程序中,其中一个操作将使用 Spring AOP 框架。
Advice这是实际行动之前或之后执行的方法。这是在程序执行期间通过 Spring AOP 框架实际被调用的代码。
Pointcut这是一组一个或多个连接点,通知应该被执行。你可以使用表达式或模式指定切入点正如我们将在 AOP 的例子中看到的。
Introduction引用允许你添加新方法或属性到现有的类中。
Target object被一个或者多个方面所通知的对象,这个对象永远是一个被代理对象。也称为被通知对象。
WeavingWeaving 把方面连接到其它的应用程序类型或者对象上,并创建一个被通知的对象。这些可以在编译时,类加载时和运行时完成。

通知的类型

Spring 方面可以使用下面提到的五种通知工作:

通知描述
前置通知@Before在一个方法执行之前,执行通知。
后置通知@After在一个方法执行之后,不考虑其结果,执行通知。
返回后通知@AfterReturning在一个方法执行之后,只有在方法成功完成时,才能执行通知。
抛出异常后通知@AfterThrowing在一个方法执行之后,只有在方法退出抛出异常时,才能执行通知。
环绕通知@Around在建议方法调用之前和之后,执行通知。

重难点分析

  • AOP 是什么,解决了什么问题,实现原理,应用场景。
  • AOP 编程基本步骤及实现过程(以基于AspectJ框架实现为例)。
  • AOP 编程中的核心对象及应用关系。
  • AOP 思想在Spring中的实现原理分析。
  • AOP 编程中基于注解方式的配置实现。(@Aspect,@PointCut,@Around,...)
  • AOP 编程中基于注解方式的事务控制。(@Transactional)
  • AOP 编程中异步操作的实现?(@EnableAsync,@Async)
  • AOP 编程中的缓存应用?(@EnableCaching,@Cacheable,@CacheEvict)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值