尝试为任何包含变量的方法匹配 AspectJ 切入点签名
我想创建一个与包含 ModelMap 的 Web 控制器中的任何方法匹配的切入点:
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 参数相匹配,而不必为每个可能的参数组合添加切入点委托?
I want to create a pointcut that matches any method in my Web controller that contains a ModelMap:
pointcut addMenu(ModelMap modelMap) :
execution (public String example.web.MyController.*(..)) && args (modelMap);
before(ModelMap modelMap) : addMenu(modelMap) {
// Do stuff with modelMap...
}
My problem is that this only matches methods with ONLY the ModelMap parameter, others are not matched because they contain too many parameters. For example, this is not intercepted, due to the "req" parameter:
public String request(HttpServletRequest req, ModelMap modelMap) {
// Handle request
}
Is there any way to match all methods with a ModelMap parameter, without having to add a pointcut delegate for every possible parameter combination?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
您可以使用通配符
*
或..
来灵活地表达参数。请参阅 AspectJ:切入点中的参数
You can use wildcards
*
or..
to express the arguments in a flexible way.See AspectJ: parameter in a pointcut