尝试为包含变量的任何方法匹配AspectJ切入点签名

时间:2010-02-08 16:05:43

标签: java spring-mvc aspectj pointcuts

我想在我的Web控制器中创建一个与包含ModelMap的任何方法相匹配的切入点:

pointcut addMenu(ModelMap modelMap) : 
    execution (public String example.web.MyController.*(..)) && args (modelMap);

before(ModelMap modelMap) : addMenu(modelMap) {
    // Do stuff with modelMap...
}

我的问题是,这只与 ONLY ModelMap参数的方法匹配,其他方法不匹配,因为它们包含太多参数。例如,由于“req”参数:

,因此不会截获此内容
public String request(HttpServletRequest req, ModelMap modelMap) {
    // Handle request
}

有没有办法将所有方法与ModelMap参数匹配,而不必为每个可能的参数组合添加切入点委托?

1 个答案:

答案 0 :(得分:4)

您可以使用通配符*..以灵活的方式表达参数。

pointcut addMenu(ModelMap modelMap) : 
    execution (public String example.web.MyController.*(..)) && args (*, modelMap);

请参阅AspectJ: parameter in a pointcut