AOP的基本概念

本文详细解析了面向切面编程(AOP)的核心概念和技术要点,包括关注点、连接点、切入点、Advice等,并阐述了AOP如何通过织入将横切关注点与业务逻辑分离,提高软件模块化程度。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

切面=关注点+模块化

 

关注点所关心的程序的一个功能,代码表达

 

target:被通知对象,关注的原始对象(包含所关注功能的对象,目标对象)

 

连接点:包含关注点的方法,add1,add2

 

target、连接点两者关系:target包含连接点。

 

切入点匹配连接点的断言,即连接点的集合,连接点的模块化。

 

advice某个特定连接点上的动作。独立出来共同的,关注点功能的真正实现

 

AOP代理:动态把连接点和advice对接起来。

 

Weaving:织入。advice和原始功能的结合。把切面连接到其他的应用程序类型或者对象上,并创建一个被通知(advised)的对象。做一个东西,加进去。

 

 

如何做AOP?

 

1 找共性功能点→出现关注点→包含关注点的方法(连接点)→包含关注点的对象
spring观察,一旦连接点被调用,开始在配置文件中匹配,连接点与Advice对应,代理开始调用Advice执行。然后将这个实现的功能回贴给target(织入),相当于在原来的墙上在刷一层。实际上是Advice贴到target上

 

2 任何技术都不是全新的。AOP模型→实际就是事件机制,模拟了事件机制。这些连接点实际就是事件源,在xml里注册了这些事件源,监听器:Spring。一旦**调用即触发事件,监听器Spring便分发处理(根据xml配置)。Advice相当于事件处理器。不同之处:处理完还需要Weaving。思想还是通过Spring寻找外部资源。target要什么?Spring帮你找到资源(Advice),贴给你。

 

好处:共同的东西提取出来,动态地回贴回去。Weaving的特点:没有去要,别人悄悄地贴给你。谁控制?配置文件。你要回贴什么,他要回贴什么,都有记录哦。

与注入(DI)区别:DI还需要主动去要。

 

servlet中独立出jsp用来显示,jsp实际也是servlet,没有jsp,单servlet也能实现显示的功能。如果没有AOP,这些通用的功能也是要实现的,而现在我们只是把它们独立出来,实现完后把这些回贴回去,构成完整的功能。

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值