AspectJ 编程:切面关联、实例访问与优先级控制
在软件开发中,面向切面编程(AOP)是一种强大的技术,它允许我们在不修改原有代码的基础上,对程序的横切关注点进行模块化处理。AspectJ 作为 AOP 的一种实现,提供了丰富的功能和灵活的配置选项。本文将深入探讨 AspectJ 中的切面关联、实例访问以及切面优先级等重要概念,并通过具体的代码示例进行详细说明。
1. 切面实例与连接点的关联
在 AspectJ 中,切面实例与连接点之间的关联是一个关键概念。通过观察一系列连接点的输出,我们可以发现存在两个切面实例,并且每个连接点可用的切面实例与该连接点定义所在的类型相对应。
例如,对于 Account 类和 SavingsAccount 类,分别会创建对应的切面实例。当连接点的代码定义在 Account 类型中时,使用的是为 Account 类型创建的切面实例;当连接点的代码定义在 SavingsAccount 类型中时,使用的是为 SavingsAccount 类型创建的切面实例。
JoinPoint: execution(void ajia.Account.credit(float))
aspect: ajia.AssociationDemoAspect@1d58aae
object: ajia.SavingsAccount@156ee8e
JoinPoint: e
超级会员免费看
订阅专栏 解锁全文
53

被折叠的 条评论
为什么被折叠?



