创建名为spring_aop_annotation的新module,过程参考9.1节11.1.1、配置打包方式和依赖
注意:AOP需要在IOC的基础上实现,因此需要导入IOC的依赖
由控制台日志可知,切面类的前置通知(方法),通过切入点表达式,作用到了目标方法的连接点上
该示例中(前置)通知方法引入了连接点参数,通过连接点参数,可以动态获取(切入点表达式)对应的目标方法的名称和参数列表
由控制台日志可知,后置通知在目标对象方法的finally子句中执行(一般用于释放资源)
由控制台日志可知,返回通知在目标对象方法的返回值之后执行
由控制台日志可知,异常通知在目标对象方法的catch子句中执行
本示例
环绕通知和动态代理的形式,非常相似
注意:因为环绕通知包括了其他四种通知,所以一般要么配置其他四种通知,要么只配置环绕通知;本示例为了展示效果才同时配置
由控制台日志可知,ValidateAspect切面的前置通知方法生效了,但执行顺序在LoggerAspect切面的前置通知方法的后面
由控制台日志可知,ValidateAspect切面的前置通知方法的执行顺序,在LoggerAspect切面的前置通知方法的前面
这是因为ValidateAspect切面的@Order注解的value属性值已设为2023,要小于LoggerAspect切面所使用的默认值(Integer的最大值2147483647)11.7、扩展知识
欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/) | Powered by Discuz! X3.4 |