Spring笔记7

AOP思想

(1)AOP概述
AOP:面向切面编程,扩展功能不通过修改源代码实现。
AOP采取横向抽取机制,取代传统的纵向继承体系重复代码。

纵向继承机制:需要扩展功能时,需要继承有扩展功能的类,然后再子类中调用父类方法实现扩展功能,但是父类方法名发生改变,子类代码也要相应的发生变化。

(2)AOP底层原理
底层使用:动态代理方式实现

横向抽取机制:
1)针对有接口的情况,使用JDK动态代理。创建接口实现类的代理对象
2)针对没有接口的情况,使用cglib动态代理。创建子类的代理对象

(3)AOP操作术语

JoinPoint(连接点):指那些被拦截的点,即类中可以被增强的点。在Spring中这些点指的是方法,因为Spring只支持方法类型的连接点。

Pointcut(切入点): 指我们要对哪些Joinpoint进行拦截的定义。即实际被增强的方法。

Advice(通知/增强): 拦截到JoinPoint之后要做的事情。即增强的逻辑,比如扩展的日志功能,这个日志功能称之为增强。
分为:
前置通知(增强):逻辑在方法之前执行。
后置通知(增强):逻辑在方法之后执行。
异常通知(增强):方法中出现异常。
最终通知(增强):在后置之后执行。
环绕通知(增强):在方法之前和方法之后执行。

Aspect(切面): 把增强应用到具体的方法上面,过程叫做切面。即把增强用到切入点的过程。

Introduction(引介):可以在不修改代码的前提下,在运行期向类中动态的添加一些方法和成员变量。

Target(目标对象):要增强的类(增强方法所在的类)。

Weaving(织入):把增强用到Target的过程。

Proxy(代理):一个类被AOP织入增强后,就产生一个结果代理类。

AOP操作

AspectJ:是一个面向切面的框架,本身不是Spring的一部分,只是需要和Spring一起使用来实现对AOP的操作。

AOP准备工作:
1)除了导入最基本的jar包,还需要导入aop相关的jar包。
在这里插入图片描述
2)在spring的核心配置文件加入aop的约束条件(the AOP schema)

使用AspectJ实现Aop的两种方式:
1):基于AspectJ的xml配置
2):基于AspectJ的注解方式

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值