如何向Spring MVC添加自定义注释?

rus*_*tyx 10 spring spring-mvc spring-annotations

任何人都可以解释我需要做些什么来实现我自己的注释,这将为我的网络请求添加功能?

例如:

@Controller
public class MyController {
    @RequestMapping("/abc")
    @RequiresSomeSpecialHandling
    public void handleSecureRequest() {
    }
}
Run Code Online (Sandbox Code Playgroud)

@RequiresSomeSpecialHandling将是我自己的注释,导致在给定的Web请求之前或之后完成一些特殊工作/abc.

我知道在非常高的层次上我需要编写一个bean后处理器,扫描我的注释类,并在需要时注入自定义mvc拦截器.但是有没有简化此任务的快捷方式?特别是对于上面的两个例子.

提前致谢,

Ros*_*hev 2

取决于您想要通过 @RequiresSomeSpecialHandling 执行什么操作。例如,您是否希望它影响请求映射或方法的调用(即解析方法参数、处理返回值)?

Spring 3.1 中对带注释的类的支持变得更加可定制。您可以浏览此存储库中的一些示例。

另请记住,Spring 3.1 中的 HandlerInterceptor 可以将处理程序对象转换为 HandlerMethod,这使您可以访问确切的方法(包括其注释)。这可能足以满足您需要做的事情。