尝试为任何包含变量的方法匹配AspectJ切入点签名
问题内容:
我想创建一个切入点,该切入点与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参数匹配,而不必为每种可能的参数组合添加切入点委托?
问题答案:
您可以使用通配符*
或..
以灵活的方式表示参数。
pointcut addMenu(ModelMap modelMap) :
execution (public String example.web.MyController.*(..)) && args (*, modelMap);