我正在学习spring框架,我很困惑何时使用Interceptor以及何时使用Validator。 Hibernate和JSR提供了大量的验证注释,因此拦截器的使用是什么。假设我们要检查字段是否为空,那么JSR注释或拦截器的推荐方式是什么。
我只是想知道何时应该选择拦截器而非验证器。
答案 0 :(得分:0)
拦截器和验证是单独的概念,可能会也可能不会一起工作。它们不以任何方式排他性或冲突。
过滤器和拦截器是非常适合横切关注点的构造,以及与业务逻辑无直接关系的可重用代码。验证就是这样一个问题,但是日志记录,审计和安全性也是如此。
过滤器和拦截器也以Servlet或Spring Controller处理程序方法的生命周期为中心,它们关注的是在之前或之后执行的逻辑。
验证没有这个方面,通常,您将在处理程序之前进行验证,但在给定某个上下文的情况下,您可以另行决定。
关于纳罗斯的评论。正如他所说。验证规范背后的主要目的是促进验证逻辑的重用,因为这是通常涉及并在不同层中执行的关注点。
如上所述,针对不同问题的单独概念。