AOP:基于xml配置

AOP 相关术语

Joinpoint( 连接点):
	所谓连接点是指那些被拦截到的点。在 spring 中,这些点指的是方法,
	因为 spring 只支持方法类型的		连接点。
	
Pointcut( 切入点):
	所谓切入点是指我们要对哪些 Joinpoint 进行拦截的定义。
	
Advice( 通知/ 增强):
	所谓通知是指拦截到 Joinpoint 之后所要做的事情就是通知。
	通知的类型:前置通知,后置通知,异常通知,最终通知,环绕通知。
	
Introduction( 引介):
	引介是一种特殊的通知在不修改类代码的前提下, Introduction 可以在运行期为类动态地添加一些方
	法或 Field。

Target( 目标对象):
	代理的目标对象。

Weaving( 织入):
	是指把增强应用到目标对象来创建新的代理对象的过程。
	spring 采用动态代理织入,而 AspectJ 采用编译期织入和类装载期织入。

Proxy (代理):
	一个类被 AOP 织入增强后,就产生一个结果代理类。

Aspect( 切面):
	是切入点和通知(引介)的结合。

切入点表达式(execution):匹配方法的执行(常用)

表达式语法:execution([修饰符] 返回值类型 包名.类名.方法名(参数))
写法说明:
全匹配方式:
	public  void	com.itheima.service.impl.AccountServiceImpl.saveAccount(com.itheima.domain.Account)
访问修饰符可以省略 
	void com.itheima.service.impl.AccountServiceImpl.saveAccount(com.itheima.domain.Account)
返回值可以使用*号,表示任意返回值
	* com.itheima.service.impl.AccountServiceImpl.saveAccount(com.itheima.domain.Account)
包名可以使用*号,表示任意包,但是有几级包,需要写几个*
	* *.*.*.*.AccountServiceImpl.saveAccount(com.itheima.domain.Account)
使用..来表示当前包,及其子包
	* com..AccountServiceImpl.saveAccount(com.itheima.domain.Account)
类名可以使用*号,表示任意类
	* com..*.saveAccount(com.itheima.domain.Account)
方法名可以使用*号,表示任意方法
	* com..*.*( com.itheima.domain.Account)
参数列表可以使用*,表示参数可以是任意数据类型,但是必须有参数
	* com..*.*(*)
参数列表可以使用..表示有无参数均可,有参数可以是任意类型
	* com..*.*(..)
全通配方式:
	* *..*.*(..)
注:
通常情况下,我们都是对业务层的方法进行增强,所以切入点表达式都是切到业务层实现类。
	execution(* com.itheima.service.impl.*.*(..))

配置Spring中的IOC

  • (前置通知,后置通知,异常通知,最终通知) 与 环绕通知 只能使用一个
1、使用前置通知,后置通知,异常通知,最终通知

在这里插入图片描述

2、使用环绕通知
1、配置XML

在这里插入图片描述

2、aroundPringLog

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值