java - 双点“..”语法在 AspectJ 中是如何工作的?
问题描述
我需要让这个 aop 方面发挥作用,但我总是得到错误 404,我需要知道控制器是否正确后这个点是否正确。了解这些点是如何工作的,以访问控制器。
如果可以解释这些点是如何工作的。
<aop:aspect ref="permissionInterceptor">
<aop:around
method="invoke"
pointcut="execution(* com.teste1.teste2.web.controller..*())
and @annotation(com.teste1.ae.client.security.Permission)"
/>
</aop:aspect>
解决方案
execution(* com.teste1.teste2.web.controller..*())
将意味着 - 执行com.teste1.teste2.web.controller
包或其子包之一中定义的任何方法
..
是一个特殊的通配符,表示可以匹配任意数量的参数。在执行切入点的上下文中,它将是当前包或它的任何子包。
Spring 文档参考:示例
而 (..) 匹配任意数量(零个或多个)参数。
with 的表达..
会起作用。and @annotation(com.teste1.ae.client.security.Permission)
您可以验证从表达式中删除部件时是否建议控制器方法。如果请求仍然导致 404 ,请分享MCVE或 Aspect 代码以进一步了解逻辑。
推荐阅读
- c# - 如何读取midi文件
- python-3.x - 如果进程超过给定的时间阈值,则结束 pdf 到 txt 的转换
- google-app-engine - 您可以使用 Kaniko 通过 gcloud app deploy 为 App Engine Flexible 构建自定义映像吗?
- python - 如何避免错误“ValueError:LineStrings 必须至少有 2 个坐标元组”?
- hazelcast - 无论如何要从 Hazelcast 中查看缓存条目元数据(即:添加日期、上次访问等)?
- c# - 如何在不修改空格或缩进的情况下保存文件内容
- python - 不是有效的正则表达式
- excel - 我的代码出现“权限被拒绝”错误
- javascript - 通过使用 React.useRef 创建的引用单击链接发出非法调用错误消息
- python - 如何修复'TypeError: __init__() 得到了一个意外的关键字参数'sender''