前言

面向机器 ➡️ 汇编 ➡️ 面向过程 ➡️ 面向对象 ➡️ 面向切面(面向多个对象编程,不增加代码的基础上,增加新的功能)
IOC/DI:自动将要使用的对象送到执行者的手上
AOP:公共功能本身

AOP概述

  • 核心关注点(核心业务):真个系统的主业务流程,要实现的功能
  • 横切关注点(系统业务):公共功能,如事务、日志、安全等


AOP并不是Spring框架特有的,Spring只是支持AOP编程的框架之一,整合第三方AOP框架来实现面向切面编程。(Aspect)

  • 现实的应用场景:使用面向切面编程,AOP框架已经实现了面向切面的很多内容,程序员使用AOP要做的事情:
    • 编写公共功能,切面
    • 基于AOP框架的配置,直接把核心业务和切面关联起来
  • Spring中实现AOP方式有三种
    • 基于AspectJ注解的方式实现
    • 基于schema的xml配置
    • 基于Spring工厂的代理类ProxyFactoryBean代理类来实现

AOP入门案例——基于AspectJ注解

引入jar包


编写核心业务的接口和实现类


编写切面


配置基本信息


测试


AOP概念详解

  • AOP理解
    利用一种横切的技术,剖析封装的对象的内部,将影响了多个类的行为封装到了一个可重用的模块,称为Aspect切面
    将应用程序中的商业逻辑与其提供支持的通用服务进行分离
  • AOP术语


  • 切面:公共功能、交叉功能的描述
  • 连接点:静态概念,通知执行的地方
  • 通知:实现切面功能的类
  • 切入点:动态概念,运行时执行通知的地方,实现切面功能是,连接点变为切入点
  • 引入:静态概念,将切面与目标对象关联起来
  • 目标对象:被通知的对象,核心关注点的对象
  • 代理对象:代理的目标对象,通过代理目标对象就增加了切面功能
    • 目标对象+切面功能
  • 织入:将切面应用到代理对象,是一个过程


  • 通知类型
    面与核心业务关联时,什么时候织入切面的执行?




  • 前置通知:核心业务执行前执行
  • 返回后通知
  • 异常通知
  • 后置通知:核心业务执行后执行
  • 环绕通知

ps:因作者能力有限,有错误的地方请见谅

  • 喜欢这篇文章的话可以用快捷键 Ctrl + D 来收藏本页
× 请我吃糖~
打赏二维码