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内名称必须和通知方法参数对应

上一篇下一篇

猜你喜欢

热点阅读