AspectJ对AOP的实现

70 阅读2分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第23天,点击查看活动详情

(4) 目标对象(Target)

目标对象指 将要被增强 的对象。 即包含主业 务逻辑的 类的对象。 上例中 的

BookServiceImpl 的对象若被增强,则该类称为目标类,该类对象称为目标对象。当然, 不被增强,也就无所谓目标不目标了。

(5) 通知(Advice)

通知表示切面的执行时间,Advice 也叫增强。上例中的 MyInvocationHandler 就可以理解为是一种通知。换个角度来说,通知定义了增强代码切入到目标代码的时间点,是目标方法执行之前执行,还是之后执行等。通知类型不同,切入时间不同。

切入点定义切入的位置,通知定义切入的时机

AspectJ对AOP的实现(掌握)

对于 AOP 这种编程思想,很多框架都进行了实现。Spring 就是其中之一,可以完成面向切面编程。然而,AspectJ 也实现了 AOP 的功能,且其实现方式更为简捷,使用更为方便, 而且还支持注解式开发。所以,Spring 又将 AspectJ 的对于 AOP 的实现也引入到了自己的框架中。

在 Spring 中使用 AOP 开发时,一般使用 AspectJ 的实现方式。

1. AspectJ 简介

AspectJ 是一个优秀面向切面的框架,它扩展了 Java 语言,提供了强大的切面实现

官网地址:www.eclipse.org/aspectj/

AspetJ 是 Eclipse 的开源项目,官网介绍如下:

image.png

a seamless aspect-oriented extension to the Javatm programming language(一种基于 Java 平台的面向切面编程的语言)

Java platform compatible(兼容 Java 平台,可以无缝扩展)

easy to learn and use(易学易用)

2. AspectJ 的通知类型(理解)*

AspectJ 中常用的通知有四种类型:

(1)前置通知@Before

(2)后置通知@AfterReturning

(3)环绕通知@Around

(4)最终通知@After

(5)定义切入点@Pointcut(了解)