使用AspectJ开发AOP

一.前提了解Spring中的通知类型

  1.org.springframework.aop.MethodBeforeAdvice(前置通知) 在目标方法执行前实施增强,可用于权限管理等功能。

  2.org.springframework.aop.AfterReturningAdvice(后置通知) 在目标方法执行后实施增强,可用于关闭流、上传文件、删除临时文件等功能。
     
  3.org.aopalliance.intercept.MethodInterceptor(环绕通知)在目标方法执行前后实施增强,可用于 日志、事务管理等功能。
                          
  4.org.springframework.aop.ThrowsAdvice(异常抛出通知) 在方法抛出异常后实施增强。

  5.org.springframework.aop.IntroductionInterceptor(引介通知) 在目标类中添加一些新的方法和属性,可以应用于修改老版本程序。

二.AspectJ开发

AspectJ是一个基于Java语言的AOP框架,它提供了强大的AOP功能。Spring 2.0以后,Spring AOP引入了对AspectJ的支持,并允许直接使用AspectJ进行编程,而Spring自身的AOP API也尽量与AspectJ保持一致。新版本的Spring框架,也建议使用AspectJ来开发AOP。 使用AspectJ实现AOP有两种方式:一种是基于XML的声明式AspectJ,另一种是基于注解的声明式AspectJ。

1.基于XML的声明式AspectJ

基于XML声明的AspectJ是指:在xml文件中定义切面、切入点以及通知,所有的切面、切入点以及通知必须在 < aop:config > < /aop:config >中配置。
在这里插入图片描述
xml文件中Aspect常用元素的配置:
在这里插入图片描述
1.1:配置切面
在Spring配置文件中配置切面使用的是< aop:aspect>元素,该元素会将一个已经定义好的Spring Bean 转换成一个切面Bean,所以要在配置文件中首先定义一个普通的Spring Bean。配置< aop:aspect>时的常用 id 和 ref 属性。
在这里插入图片描述
1.2:配置切入点
当< aop:pointcut>作为< aop:config>的子元素时,表示该切入点是全局切入点,它可以被多个切面使用,当< aop:pointcut>作为< aop:ascpect>的子元素时,表示该切入点时局部切入点,只能应用于当前切面。常用的属性是 id 和 expression。
在这里插入图片描述
属性expression中表达式的书写方式:
execution(* com.itheima.jdk..(…)) 是定义的切入点表达式,该切入点表达式的意思是匹配com.itheima.jdk包中任意类的任意方法的执行。其中execution()是表达式的主体,第1个表示的是返回类型,使用代表所有类型;com.itheima.jdk表示的是需要拦截的包名,后面第2个表示的是类名,使用代表所有的类;第3个后表示的是方法名,使用表示所有方法;后面(…)表示方法的参数,其中"…"表示任意参数。需要注意的是,第1个与包名之间有一个空格。

上面示例中定义的切入点表达式只是开发中常用的配置方式,而Spring AOP中切入点表达式的基本格式如下: execution(modifiers-

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值