Spring AOP multiple return 输入表达式
Spring AOP multiple return type in expression
我正在使用 Spring aop,并且在我的表达式中只输入一个 return 就好了
<aop:config>
<aop:pointcut id="webResourceInvocationPointcut"
expression="execution(public com.es.core.message.ResultOrError com.presentation.resource..*.*(com.es.mus.MUSIn,..))" />
<aop:advisor pointcut-ref="webResourceInvocationPointcut" advice-ref="resourceChainOfInterceptors" />
</aop:config>
这里我指定如果请求转到 public
资源,方法 return 类型是 com.es.core.message.ResultOrError
并且方法中的包和参数,我想使用 aop是 com.presentation.resource..*.*(com.es.mus.MUSIn,..))
但是现在,我不仅要允许 com.es.core.message.ResultOrError
作为 return 类型,还要允许 java.util.concurrent.Future
通配符 * 有效,但我只需要过滤这两种类型。也一个接一个地添加它不起作用。
我收到这个错误
Caused by: java.lang.IllegalArgumentException: Pointcut is not well-formed: expecting '(' at character position 89
[3:47]
execution(public com.es.core.message.ResultOrError java.util.concurrent.Future scala.concurrent.Future com.presentation.resource..*.*(com.es.mus.MUSIn,..))
知道如何解决吗?
您可以使用 ||
(或)布尔运算符。根据您的堆栈跟踪,您的表达式应该类似于:
expresion= "execution(public com.es.core.message.ResultOrError com.presentation.resource..*.*(com.es.mus.MUSIn,..) || java.util.concurrent.Future com.presentation.resource..*.*(com.es.mus.MUSIn,..)|| scala.concurrent.Future com.presentation.resource..*.*(com.es.mus.MUSIn,..) )"
我正在使用 Spring aop,并且在我的表达式中只输入一个 return 就好了
<aop:config>
<aop:pointcut id="webResourceInvocationPointcut"
expression="execution(public com.es.core.message.ResultOrError com.presentation.resource..*.*(com.es.mus.MUSIn,..))" />
<aop:advisor pointcut-ref="webResourceInvocationPointcut" advice-ref="resourceChainOfInterceptors" />
</aop:config>
这里我指定如果请求转到 public
资源,方法 return 类型是 com.es.core.message.ResultOrError
并且方法中的包和参数,我想使用 aop是 com.presentation.resource..*.*(com.es.mus.MUSIn,..))
但是现在,我不仅要允许 com.es.core.message.ResultOrError
作为 return 类型,还要允许 java.util.concurrent.Future
通配符 * 有效,但我只需要过滤这两种类型。也一个接一个地添加它不起作用。
我收到这个错误
Caused by: java.lang.IllegalArgumentException: Pointcut is not well-formed: expecting '(' at character position 89
[3:47]
execution(public com.es.core.message.ResultOrError java.util.concurrent.Future scala.concurrent.Future com.presentation.resource..*.*(com.es.mus.MUSIn,..))
知道如何解决吗?
您可以使用 ||
(或)布尔运算符。根据您的堆栈跟踪,您的表达式应该类似于:
expresion= "execution(public com.es.core.message.ResultOrError com.presentation.resource..*.*(com.es.mus.MUSIn,..) || java.util.concurrent.Future com.presentation.resource..*.*(com.es.mus.MUSIn,..)|| scala.concurrent.Future com.presentation.resource..*.*(com.es.mus.MUSIn,..) )"