AspectJ - AOP框架

本文介绍AspectJ作为Java的AOP框架,在Spring 2.0之后如何被集成支持,并探讨了AspectJ的切点表达式及通知类型。详细解析了execution切点表达式的语法与用法,同时介绍了AspectJ的五种主要通知类型及其应用场景。

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

  1. AspectJ是一个基于Java语言的AOP框架
  2. Spring2.0以后新增了对AspectJ切点表达式支持
  3. @AspectJ 是AspectJ1.5新增功能,通过JDK5注解技术,允许直接在Bean类中定义切面

新版本Spring框架,建议使用AspectJ方式来开发AOP

  1. 主要用途:自定义开发

 

切入点表达式

1.execution()  用于描述方法 

语法:execution(修饰符  返回值  包.类.方法名(参数) throws异常)

修饰符,一般省略

public 公共方法

* 任意

返回值,不能省略

void 返回没有值

String 返回值字符串

* 任意

包,[省略]

com.itheima.crm 固定包

com.itheima.crm.*.service crm包下面子包任意 (例如:com.itheima.crm.staff.service)

com.itheima.crm.. crm包下面的所有子包(含自己)

com.itheima.crm.*.service.. crm包下面任意子包,固定目录service,service目录任意包

类,[省略]

UserServiceImpl 指定类

*Impl 以Impl结尾

User* 以User开头

* 任意

方法名,不能省略

addUser 固定方法

add* 以add开头

*Do 以Do结尾

* 任意

(参数)

() 无参

(int) 一个整型

(int ,int) 两个

(..) 参数任意

throws ,可省略,一般不写。

 

AspectJ 通知类型

  1. aop联盟定义通知类型,具有特性接口,必须实现,从而确定方法名称。
  2. aspectj 通知类型,只定义类型名称。已经方法格式。
  3. 个数:6种,知道5种,掌握1中。

before:前置通知(应用:各种校验)

在方法执行前执行,如果通知抛出异常,阻止方法运行

afterReturning:后置通知(应用:常规数据处理)

方法正常返回后执行,如果方法中抛出异常,通知无法执行

必须在方法执行后才执行,所以可以获得方法的返回值。

around:环绕通知(应用:十分强大,可以做任何事情)

方法执行前后分别执行,可以阻止方法的执行

必须手动执行目标方法

afterThrowing:抛出异常通知(应用:包装异常信息)

方法抛出异常后执行,如果方法没有抛出异常,无法执行

after:最终通知(应用:清理现场)

方法执行完毕后执行,无论方法中是否出现异常

环绕

 

try{

     //前置:before

    //手动执行目标方法

    //后置:afterRetruning

} catch(){

    //抛出异常 afterThrowing

} finally{

    //最终 after

}

 

 

导入jar包

aop联盟规范

spring aop 实现

aspect 规范

spring aspect 实现

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值