(Spring笔记)Spring的AspectJ基本概念

这篇博客详细介绍了面向切面编程(AOP)中的核心概念,包括切面、连接点、切入点和通知类型。AspectJ作为AOP的一种实现,提供了一种更简单、便捷的方式来实现切面功能。博客提到了AspectJ的四种常见通知类型:前置、后置、环绕和最终通知,并给出了切入点表达式的示例。此外,还简述了AspectJ的使用和学习优势。

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

目录

一、AOP常用的术语

二、AspectJ对AOP的实现

三、什么是 AspectJ?

四、AspectJ常见通知类型

五、AspectJ切入点表达式

六、总结


一、AOP常用的术语

(1)切面:就是那些重复的,公共的,通用的功能称为切面。例如:日志,事务,权限。
(2)连接点:就是目标方法,因为在目标方法中要实现目标方法的功能和切面功能。
(3)切入点(Pointcut):指定切入的位置,多个连接点构成切入点,切入点可以是一个目标方法,可以是一个类中的所有方法,可以是某个包下的所有类中的方法。
(4)目标对象:操作谁,谁就是目标对象。
(5)通知(Advice):来指定切入的时机,是在目标方法执行前还是执行后还是出错时,还是环绕目标方法切入切面功能。


二、AspectJ对AOP的实现

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


三、什么是 AspectJ?

         AspectJ 是一个优秀面向切面的框架,它扩展了 Java 语言,提供了强大的切面实现。它因为是基于java语言开发的,所以无缝扩展。easy to learn and use(易学易用)。

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


四、AspectJ常见通知类型

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

(1)前置通知@Before

(2)后置通知@AfterReturning

(3)环绕通知@Around

(4)最终通知@After

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


五、AspectJ切入点表达式

  规范公式:execution(访问权限 方法返回值 方法声明(参数) 异常类型)
  简化公式:execution( 方法返回值 方法声明(参数) )

  用到的符号:
          * ——> 代码任意个任意的字符(通配符)。
          .. ——> 如果出现在方法的参数中,则代表任意参数,如果出现在路径中,则代表本路径及其所有的子路径。

        示例: 

execution(public * *(..)) :任意的公共方法
execution(* set*(..)):任何一个以“set”开始的方法
execution(* com.dhrj.service.impl.*.*(..)):任意的返回值类型,在com.dhrj.service.impl包下的任意类的任意方法的任意参数
execution(* com.dhrj.service..*.*(..)):任意的返回值类型 ,在com.dhrj.service及其子包下的任意类的任意方法的任意参数  
execution(* *..service.*.*(..)):service之前可以有任意的子包
execution(* *.service.*.*(..)):service之前只有一个包

六、总结

仅自己学习记录,如有错误,敬请谅解~,谢谢~~~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

电竞丶小松哥

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值