如何解决RequestParam 和 PathVariable 上的自定义注释
我创建了自定义注释
annotation class UserControl(
val userIdentifier: String
)
我想将此注释应用于查询参数和不同控制器中的路径变量。
fun userWithMobile(
@UserControl("PhoneNumber")
@RequestParam mobile: String
): RegisteredUser {
return userManager.getUserWithPhoneNumber(mobile))
}
如何检查查询参数是否具有 UserControl 注释,并对其进行一些处理。是否有编写全局处理程序或为此的处理器的标准方法?
希望得到任何帮助
解决方法
AspectJ 可以直接匹配参数注解,但不能将它们绑定到通知方法值,如类或方法注解。所以如果你只想匹配它们,一个简单的切入点就足够了。如果您想访问注释及其参数值,则需要一点反射魔法。我已经多次回答相关问题,这就是为什么我要关闭这个作为副本。但首先,这里是您想要阅读的资源。它们都与您的问题有关,展示了如何处理不同特定情况的示例:
- https://stackoverflow.com/a/38162279/1082681
- https://stackoverflow.com/a/10595712/1082681
- https://stackoverflow.com/a/50540489/1082681
- https://stackoverflow.com/a/49872132/1082681
- https://stackoverflow.com/a/61284425/1082681
- https://stackoverflow.com/a/16624766/1082681
基本上,您需要以下切入点或它的一些变体:
execution(* *(..,@my.package.UserControl (*),..))
不匹配切入点中的参数的幼稚、效率较低的方法,仅使用反射:
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。