天天看點

面試疑難點解析:開發工具及架構(六)

Spring攔截器

為什麼SpringMVC沒有像Struts 2.x那樣的攔截器棧?

從我個人角度來看,我認為不使用攔截器棧會更好。

首先必須要明确的一點,在Spring的設計之中,它實際上隻是更加忠實于原始的MVC技術的提升。如果要處理請求,使用DisptacherServlet完成,這一點要比Struts 2.x使用Filter更好。

Struts 2.x占用了過濾器的過程,而這一過程對開發很不友善,在實際的開發裡面過濾器可能需要完成許多輔助功能,Struts 2.x做的時候考慮到Struts 1.x的區分,是以沒有使用Servlet。如果使用者要實作一些AOP有關的設計,那該怎麼做呢?在這樣的情況下,Struts 2.x提出了攔截器,但由于Struts2.x攔截器 裡面承載的内容過多,提出了攔截器棧。

如果在傳統的MVC開發裡面,需要進行攔截的操作控制,那麼最簡化的處理是使用多個過濾器完成。是以SpringMVC也采用了同樣的模式來進行處理,它的攔截器是基于配置的方式完成,按照過濾器的使用模式,如果需要多個攔截器,就在配置裡面編寫多個攔截器的配置即可,因為所有的攔截器會按照路徑攔截。

更多專業知識,面試技巧就在面試一點通,持續更新中……

感謝浏覽~

本内容來源于

阿裡雲大學-Java面試技巧