0


spring切入点表达式(一)

前面写到切入点表达式,如果把全部方法都作为切入点的话,用execution(* *(..))表达式,这个表达式代表什么意思呢?

public void login (String name,String address){}

** * ( . . ) *

  • *(..)对应方法如上图

  • -------->代表修饰符,返回类型

*--------->代表方法名

()--------->代表参数列表

..--------->代表对参数没有要求(参数是否有,有几个都行,什么类型都行)

1.比如把login方法作为切入点,表达式这么写 * login(..)

2.比如把login方法作为切入点,有两个字符串类型参数,表达式这么写 * login(String,String)

3.如果参数不是Java自带的,必须写全类名,比如参数是User,必须这么写

  • login(com.org.study.User)

4.java自带参数和自定义参数可以连用

  • login(String,com.org.study.User)

具体的代码如下:

1.比如把login方法作为切入点,表达式这么写 * login(..)

<!--所有的方法都作为切入点,加入额外功能-->
<aop:pointcut id="pc" expression="execution(* login(..))"/>
<!--目的把切入点和额外功能进行整合-->
<aop:advisor advice-ref="around" pointcut-ref="pc"></aop:advisor>

2.比如把login方法作为切入点,有两个字符串类型参数,表达式这么写 * login(String,String)

<!--所有的方法都作为切入点,加入额外功能-->
<aop:pointcut id="pc" expression="execution(* login(String,String))"/>
<!--目的把切入点和额外功能进行整合-->
<aop:advisor advice-ref="around" pointcut-ref="pc"></aop:advisor>

3.如果参数不是Java自带的,必须写全类名,比如参数是User,必须这么写

  • login(com.org.study.User)
<!--所有的方法都作为切入点,加入额外功能-->
<aop:pointcut id="pc" expression="execution(* login(com.org.study.User))"/>
<!--目的把切入点和额外功能进行整合-->
<aop:advisor advice-ref="around" pointcut-ref="pc"></aop:advisor>

4.java自带参数和自定义参数可以连用

  • login(String,com.org.study.User)
<!--所有的方法都作为切入点,加入额外功能-->
<aop:pointcut id="pc" expression="execution(* login(String,com.org.study.User))"/>
<!--目的把切入点和额外功能进行整合-->
<aop:advisor advice-ref="around" pointcut-ref="pc"></aop:advisor>

标签: java spring

本文转载自: https://blog.csdn.net/qq_24972061/article/details/128304334
版权归原作者 西北灰狼 所有, 如有侵权,请联系我们删除。

“spring切入点表达式(一)”的评论:

还没有评论