4

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

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

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

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

public String request(HttpServletRequest req, ModelMap modelMap) {
    // Handle request
}

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

4

1 回答 1

4

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

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

请参阅AspectJ:切入点中的参数

于 2010-02-08T16:13:34.960 回答