比较Spring AOP和AspectJ

1. 介绍

当前有多个可用的AOP库,这些库必须能够回答许多问题:

  • 它与我现有的或新的应用程序兼容吗?
  • 在哪里可以实施AOP?
  • 它与我的应用程序集成的速度有多快?
  • 性能开销是多少?

在本文中,我们将着眼于回答这些问题,并介绍Spring AOP和AspectJ(这两种最流行的Java AOP框架)。

2. AOP 概念

在开始之前,让我们对术语和核心概念进行快速的高层次审查:

  • 切面–一种标准代码/功能,分散在应用程序的多个位置,通常与实际的业务逻辑(例如,事务管理)不同。每个方面都专注于特定的跨领域功能
  • 连接点–这是程序执行过程中的特定点,例如方法执行,构造函数调用或字段分配
  • 通知–方面在特定联接点中采取的操作
  • 切入点–与联接点匹配的正则表达式。每当任何连接点与切入点匹配时,都会执行与该切入点关联的指定建议
  • 编织–将方面与目标对象链接以创建建议对象的过程

3.Spring AOP 和AspectJ

现在,让我们从多个角度讨论Spring AOP和AspectJ,例如功能,目标,编织,内部结构,连接点和简单性

3.1 能力和目标

简而言之,Spring AOP和AspectJ具有不同的目标。 Spring AOP旨在在Spring IoC上提供一个简单的AOP实现,以解决程序员面临的最常见问题。它不打算用作完整的AOP解决方案-只能应用于由Spring容器管理的bean。 另一方面,AspectJ是原始的AOP技术,旨在提供完整的AOP解决方案。它比Spring AOP更强大,但也更复杂。还值得注意的是,AspectJ可以应用于所有域对象。

3.2 编织

AspectJ和Spring AOP都使用不同类型的编织,这会影响它们在性能和易用性方面的行为。 AspectJ使用三种不同的编织方式:

  1. 编译时编织:AspectJ编译器将方面和应用程序的源代码都
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值