Spring的AOP(七)

17 篇文章 0 订阅
Spring的AOP的简介

Spring基于AspectJ框架的AOP的开发

AOP其实有一些类似一个对于方法或者类的拦截器,调用方法的时候,都需要经过这个拦截器,需不需要在执行这个方法之前或者之后做点什么的,完成了这些操作之后,再去执行相关的方法。

AOP开发中的术语
  • 连接点(Joinpoint)

    可以被拦截到的点,比如一个Dao类中的增删改查方法都可以被拦截,这些方法就可以称之为连接点。

    Spirng仅支持对方法的连接点。

  • 切入点(Pointcut)

    真正被拦截到的点,比如在开发中,只对save方法(连接点)进行了增强,那么save方法就可以被称为切入点。

  • 增强 / 通知(Advice)(方法层面的增强)

    现在对save方法进行权限检验,那么进行权限校验(checkPri)的方法称为是通知,也就是动态添加的那一段代码。

  • 引入 / 引介(introduction)(类层面的增强)

    允许我们增强类,可以动态的向类中添加新的属性或者新的方法,或者添加接口的实现逻辑,让业务类变成该接口的实现类。也就是一种针对类的特殊增强

  • 目标(target)

    被增强的对象,也就是引入中的被增强的类,也就是被通知的对象。这样类可以专注于业务本身的逻辑。真正的业务逻辑,可以通过增强来织入

  • 织入(weaving)

    将通知(Advice)应用到目标(target)的过程,也就是将权限校验(checkPri)的方法的代码应用到UserDao的save方法上的过程。

    Spring使用的是,动态代理织入方式:在运行期为目标类添加增强生成子类的方式。

  • 代理(proxy)

    被织入增强后的类。也就是相当于被包装过后,融合了原类和增强逻辑的代理类,产生的代理对象

  • 切面(Aspect)

    切面是多个通知和多个切入点的结合。通知说明了干什么和什么时候干(什么时候通过方法名中的before,after,around等就能知道),而切入点说明了在哪干(指定到底是哪个方法),这就是一个完整的切面定义。

详细的图解:

在这里插入图片描述

引入AOP的JAR包和约束

要使用Spring 的AOP功能,除了引入四个基本包和两个日志包,还需要引入两个AOP的jar包

spring-aop-5.1.5.RELEASE
spring-aspects-5.1.5.RELEASE

在这里插入图片描述

引入AOP约束(AOP schema)

在applicationContext.xml 配置文件中,也需要和使用context标签一样,需要引入aop的约束。

需要在beans标签中加入三行代码约束:

xmlns:aop=“http://www.springframework.org/schema/aop

http://www.springframework.org/schema/aop
http://www.springframework.org/schema/aop/spring-aop.xsd

applicationContext.xml的beans标签:

<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:context="http://www.springframework.org/schema/context"
       xmlns:aop="http://www.springframework.org/schema/aop"
       xsi:schemaLocation="http://www.springframework.org/schema/beans
        http://www.springframework.org/schema/beans/spring-beans.xsd
        http://www.springframework.org/schema/context
        http://www.springframework.org/schema/context/spring-context.xsd
        http://www.springframework.org/schema/aop
        http://www.springframework.org/schema/aop/spring-aop.xsd">
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值