Spring AOP和AspectJ有什么区别?
1. 面向的对象不同
- Spring AOP
Spring AOP 是针对 Spring 框架的 AOP 实现。它依赖于 Spring 框架进行实施和管理,因此它需要使用 Spring 的容器和其他基础设施。
- AspectJ
AspectJ 是 Java 世界中独立的 AOP 框架,它不依赖于任何框架或容器。因此,除了 Java 应用程序之外,它还可以应用于其他环境,例如 Java EE 应用程序、OSGi 环境、Android 环境等。
2. AOP 实现方式不同
- Spring AOP
Spring AOP 使用代理的方式实现 AOP。Spring 利用 JDK 动态代理或 CGLIB 代理创建代理对象,代理对象包装目标对象并拦截指定的切点方法,以执行通知。
- AspectJ