AspectJ方式获取切点参数
2019-08-13 本文已影响0人
kanaSki
applicationConstext.xml:
<bean id="demo" class="com.Demo"/>
<bean id="myBefore" class="com.advice.MyBeforeAdvice"></bean>
<aop:config>
<aop:aspect ref="myBefore">
<aop:pointcut id="mypoint" expression="execution(* com.Demo.demo1(String,int)) and args(name,age)"/>
<aop:before method="test" pointcut-ref="mypoint" arg-names="name,age"/>
</aop:aspect>
</aop:config>
Demo.java:
package com;
public class Demo {
public void demo1(String name,int age) {
System.out.println("demo1");
}
}
MyBeforeAdvice.java:
package com.advice;
public class MyBeforeAdvice {
public void test(String name,int age){
System.out.println(name);
}
}
注:
expression中and不能改为&&,由Spring将and解析为&&
args(名称) 名称自定义,顺序和demo1(参数,参数)对应
<aop:before>内arg-names="名称" 名称来源于expression中args,名称必须一样
args()内有几个参数,arg-names内必须有几个参数
arg-names内名称必须和通知方法参数对应