4.5 AOP-XML-前置通知发布
戴着假发的程序员出品 抖音ID:戴着假发的程序员 欢迎关注
[查看视频教程]
这里说明一点,JoinPoint类在注解方式中已经介绍过,这里不再做介绍。
前置通知的发布Hellowrold中已经写过。这里再介绍以下参数:
我们可以在前置通知的业务方法中添加JoinPoint类型的参数,同样可以添加我们指定类型的参数:
案例:
Aspect类:
1 /** 2 * @author 戴着假发的程序员 3 * @company http://www.boxuewa.com 4 * @description 5 */ 6 public class DkAspect { 7 //前置通知 8 /** 9 *方法中传入我们指定的参数 msg 10 */ 11 public void before(JoinPoint joinPoint,String msg){ 12 System.out.println("前置通知:参数"+msg); 13 } 14 }
配置:
<!-- AOP配置 --> <aop:config> <!-- 申明AspectBean,引用我们注册的dkAspect --> <aop:aspect id="aspect" ref="dkAspcet"> <!-- 声明一个切入点,命名为pointcut1 --> <!-- xml中不能使用 && ,逻辑与要使用and,--> <!-- 如果我们的before增强方法中传入了参数msg,我就要使用args(msg)限定切入点 --> <aop:pointcut id="pointcut1" expression="args(msg) and execution(* com.st.dk.demo9.beans..*.*(..))"/> <!--配置两个前置通知,利用pointcut-ref引用上面申明的切入点--> <!-- 如果要before方法接受msg参数,我们就要在通知配置中使用arg-names指定参数名,如果有多个就使用“,”隔开 --> <aop:before method="before" arg-names="msg" pointcut-ref="pointcut1"/> </aop:aspect> </aop:config>
执行业务方法测试:

详细图解:

注意,如果有多个参数,则args(parm1,parm2), arg-names="parm1,parm2" 使用“,”隔开,保证名字和顺序一致。
我是戴着假发的程序员,分享技术,分享经验,如果要转载,请注明:出自戴着假发的程序员

浙公网安备 33010602011771号