2017-02-15 30 views
0

我正在學習彈簧框架,我對什麼時候使用攔截器以及何時使用Validator感到困惑。 Hibernate和JSR提供了大量的驗證註釋,因此攔截器的用途是什麼。假設我們想要檢查字段是否爲空,那麼推薦的方式是JSR註解或Interceptor。爲什麼使用攔截器或過濾器時,我們有驗證器

我只想知道什麼時候應該選擇攔截器而不是驗證器。

+0

通過攔截器,你的意思是像春天的'HandlerInterceptorAdapter'或你在談論Hibernate攔截器? – Naros

+0

Spring攔截器 –

回答

0

攔截器和驗證是單獨的概念,可能會或可能不會一起工作。他們不是排他性的或以任何方式衝突。

過濾器和攔截器是非常適合跨領域問題的構造,以及與業務邏輯沒有直接關係的可重用代碼。驗證是一個這樣的問題,但日誌記錄,審計和安全也是如此。

過濾器和攔截器也集中在Servlet或Spring Controller處理程序方法的生命週期中,它們關心的是在執行之前或之後執行的邏輯。

驗證沒有這方面,通常情況下,您將在處理程序之前進行驗證,但給定某種上下文,您可以另行決定。


關於納羅斯評論。正如他所說。驗證規範背後的主要目的是促進驗證邏輯的重用,因爲這是通常涉及並在不同層執行的關注類型。

所以說,單獨的概念,針對不同的問題。

+0

我認爲它不僅在處理程序之前驗證其重要性,而且服務/業務層或持久層也應該這樣做。當您在其他項目不基於Web的多個項目中共享持久性或服務層代碼時,這一點尤其重要。 – Naros