我想在包含 ModelMap 的 Web Controller 中创建一个匹配任何方法的切入点:
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 参数匹配,而不必为每个可能的参数组合添加切入点委托(delegate)?
最佳答案
您可以使用通配符*
或..
来灵活地表达参数。
pointcut addMenu(ModelMap modelMap) :
execution (public String example.web.MyController.*(..)) && args (*, modelMap);
关于java - 尝试为包含变量的任何方法匹配 AspectJ 切入点签名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2222911/