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 (*), ..))

在不匹配切入点中的参数的情况下,仅使用重感染的天真、效率较低的方法:

  • https://stackoverflow.com/a/27784714/1082681
  • https://stackoverflow.com/a/42561014/1082681

相关内容

  • 没有找到相关文章

最新更新