Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jsp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java RequestParam和PathVariable上的自定义注释_Java_Kotlin_Spring Webflux_Aop_Annotation Processing - Fatal编程技术网

Java RequestParam和PathVariable上的自定义注释

Java RequestParam和PathVariable上的自定义注释,java,kotlin,spring-webflux,aop,annotation-processing,Java,Kotlin,Spring Webflux,Aop,Annotation Processing,我已经创建了一个自定义注释 annotation class UserControl( val userIdentifier: String ) 我希望在不同控制器中的查询参数和路径变量上应用此注释 fun userWithMobile( @UserControl("PhoneNumber") @RequestParam mobile: String ): RegisteredUser { return

我已经创建了一个自定义注释

annotation class UserControl(
    val userIdentifier: String
)
我希望在不同控制器中的查询参数和路径变量上应用此注释

    fun userWithMobile(
        @UserControl("PhoneNumber")
        @RequestParam mobile: String
    ): RegisteredUser {
        return userManager.getUserWithPhoneNumber(mobile))
    }
如何检查查询参数是否具有UserControl注释,并对其进行一些处理。是否有标准的方法来编写全局处理程序,或为此编写处理器


如果有任何帮助,我们将不胜感激。AspectJ可以直接匹配参数注释,但不能将它们绑定到类或方法注释之类的通知方法值。所以,如果您只想匹配它们,一个简单的切入点就足够了。如果您想访问注释,也许还想访问它们的参数值,您需要一点反射魔法。我已经多次回答了相关的问题,这就是为什么我要以重复的形式结束这个问题。但首先,这里是您想要阅读的资源。它们都与您的问题相关,展示了如何处理不同具体情况的示例:

基本上,您想要的切入点包括以下内容或其一些变体:

执行(**(..,@my.package.UserControl(*),…)
不匹配切入点中的参数的简单、效率较低的方法,仅使用重新感染:


这通常是使用spring特性完成的,感谢所有资源。这也可以用于修改带注释的请求参数吗?是的,您可以使用AOP进行修改。但这是另一个问题。你应该可以通过搜索在这里找到答案。如果没有,我会很惊讶,请随意问一个新问题。但在你这么做之前,如果你同意我回答了你原来的问题,请接受我的答案并投赞成票。我想你忘了接受我的答案。