15 個必須知道的 Spring MVC 面試問題
已發表: 2018-03-25Spring 已成為開發 Web 應用程序最常用的 Java 框架之一。 默認情況下,所有新的 Java 應用程序都使用 Spring 核心和 Spring MVC 框架。 由於其越來越受歡迎,全球的招聘人員都在尋找親身體驗 Spring 框架的候選人。 如果您要參加 Java 開發人員角色的面試,那麼 Spring MVC 是您應該在 Spring 框架面試問題上複習知識的第一件事——無論您是新手還是有經驗的人。
畢竟,Spring MVC 框架是最常用的 Java 框架,在你參加的任何 Java(或任何相關面試)面試中,你肯定會被問到同樣的問題。 如果您不知道,Spring MVC 是一個健壯的基於 Java 的框架,可幫助構建 Web 應用程序。 顧名思義,它使用 MVC 架構——模型、視圖、控制器。 Spring MVC 提供了一種在 MVC 框架中使用 Spring 的優雅方式。 Spring 框架於 2002 年發布,是一個開源框架,這意味著世界各地的開發人員都可以為框架的開發和進一步發布做出貢獻。
學習構建 Swiggy、Quora、IMDB 等應用程序這也意味著有一個非常活躍的開發人員社區可以幫助您解決問題。 開源還增加了 Spring 框架提供的眾多好處。 尤其是如果您剛開始從事 Java 職業,則需要指導,而多元化的 Java 開發人員社區可確保您在使用 Spring MVC 時不會缺乏任何指導。
提供這麼多好處,毫無疑問為什麼 Spring MVC 是面試中最喜歡提問的話題。
在本文中,我們將討論 15 個這樣的 Spring MVC 必知問題,您可以期望在您參加的任何面試中遇到這些問題。
1、什麼是Spring框架?
Spring 是一個開源框架,旨在簡化應用程序開發。 它具有分層結構,允許開發人員選擇他們使用的組件。 它包含三個主要組件——Spring Core、Spring AOP 和 Spring MVC。

此外,如果有的話,你可以談談你對 Spring 的體驗。 這會給你的答案增加很多分量。
為什麼公司希望聘請全棧開發人員2. Spring框架的主要特點是什麼?
Spring 框架提供了許多功能,使開發人員的生活變得輕鬆。 他們之中有一些是:
- 輕量級: Spring 極其輕量級,基本版本約為 1MB,處理開銷可忽略不計。
- 控制反轉(IoC):依賴注入或控制反轉是 Spring 最重要的特性之一。 使用 IoC,開發人員無需為對象及其依賴項創建完整的環境; 他們可以簡單地創建和測試他們在給定時間點處理的對象。 需要時將包含或調用對象依賴項。
- 面向方面的編程: Spring 支持面向方面的編程。 AOP將輔助功能與程序員的業務邏輯隔離開來。 這不僅提供了模塊化,而且使代碼可維護。
- MVC 架構: Spring 帶有一個用於 Web 應用程序的 MVC 框架。 該框架可使用 JSP、Tiles、iText 和 POI 等各種技術進行高度可配置。
- JDBC 異常處理: Spring 帶有一個預定義的 JDBC 抽象層,它簡化了整個異常處理過程。
3. 多解釋一下依賴注入。
控制反轉或依賴注入旨在通過遵循一個簡單的概念來簡化對象創建的過程——不要創建對象,只描述它們應該如何創建。 使用 IoC,對像在構建時由負責協調系統中每個對象的外部實體賦予它們的依賴關係。 本質上,我們使用 IOC 或依賴注入將依賴注入到對像中。
4. 解釋 Spring 中不同類型的依賴注入? 什麼時候用哪個?
Spring 為開發者提供了以下兩種依賴注入:
- 基於構造函數的 DI:基於構造函數的 DI 是通過將多個參數(每個參數代表對其他類的依賴)傳遞給類的構造函數來完成的。 簡單地說,依賴關係以構造函數參數的形式給出。
- 基於 Setter 的 DI:當您使用無參數構造函數時,您將通過通過 setter 函數傳遞參數來實例化所考慮的 bean 來設置值,這稱為基於 setter 的依賴注入。
您什麼時候使用其中的哪一個,歸結為您的要求。 但是,對於可選依賴項,建議使用基於 Setter 的 DI,對強制依賴項使用基於 Constructor 的 DI。
採訪 Fynd 聯合創始人 Farooq Adam
5、什麼是Spring MVC框架?
Spring MVC 是 Spring 框架的核心組件之一。 它帶有隨時可用的組件和元素,可幫助開發人員構建靈活且健壯的 Web 應用程序。 顧名思義,MVC 架構分離了應用程序的不同方面——輸入邏輯、業務邏輯和 UI 邏輯。 它還提供了應用程序的 M、V 和 C 之間的鬆散耦合。
6. Spring MVC 框架相對於其他 MVC 框架有哪些好處?
Spring MVC 框架與其他框架相比具有一些明顯的優勢。 一些好處是:
- 清晰的角色分離——每個角色都有一個專門的對象,從而提供了清晰的角色分離。
- 可重用的業務代碼——使用 Spring MVC,您無需複制代碼。 您可以將現有對像用作命令而不是鏡像它們,以擴展特定的框架基類。
- 可定制的綁定和驗證
- 可定制的語言環境和主題分辨率
- 可定制的處理程序映射和視圖分辨率
- 從 Spring 2.0 開始,該框架附帶了一個 JSP 表單標記庫,這使得在 JSP 頁面中編寫表單變得更加容易。
7. DispatcherServlet 是什麼?
Spring MVC 框架是請求驅動的,圍繞處理所有 HTTP 請求和響應的中央 Servlet 設計。 然而, DispatcherServlet的作用遠不止於此。 它與 IoC 容器無縫集成,並允許您使用 Spring 的每個功能。
在接收到 HTTP 請求時,DispatcherServlet 會諮詢 HandlerMapping(這些是配置文件)以調用適當的 Controller。 然後,控制器調用適當的服務方法來設置模型數據。 它還將視圖名稱返回給 DispatcherServlet。 DispatcherServlet 在 ViewResolver 的幫助下為請求獲取定義的視圖。 視圖完成後,DispatcherServlet 將模型數據傳遞給視圖——最終在瀏覽器上呈現。
什麼是測試驅動開發:新手指南
8. Spring MVC的前端控制器類是什麼?
前端控制器是處理 Web 應用程序的所有請求的控制器。 對於 Spring MVC,DispatcherServlet 就是那個前端控制器。 當一個 Web 請求被發送到 Spring MVC 應用程序時,DISpatcherServlet 會處理所有事情。 首先,它接受請求。 然後,它組織不同的組件,如請求處理程序、控制器、視圖解析器等——所有這些都是處理請求所需的。 最後,它在瀏覽器上呈現內容。

9. 什麼是 Viewresolver 模式,它在 MVC 中是如何工作的?
View Resolver 是一種 J2EE 模式,它允許應用程序動態選擇在瀏覽器(視圖)上呈現數據的技術。 任何技術,如 HTML、JSP、Tapestry、XSLT、JSF 或任何其他此類技術都可用於 View。 View Resolver 模式保存不同視圖的映射。 Controller 返回 View 的名稱,然後將其傳遞給 View Resolver 以選擇適當的技術。
10. Spring MVC 如何提供驗證支持?
Spring 主要支持兩種類型的驗證:
- 使用 JSR-303 註釋和任何參考實現,例如 Hibernate Validator,或
- 實現 org.springframework.validation.Validator 接口。
11.用戶在選中復選框時在其他字段中收到驗證錯誤,之後,他取消選中它。 Spring MVC 的命令對像中的當前選擇狀態是什麼? 你將如何解決這個問題?
如果您不了解 Spring MVC 中的 HTTP Post 行為,這是需要回答的棘手問題之一。
在 HTTP Post 期間,如果您取消選中該複選框,則 HTTP 不包含該複選框的請求參數——這意味著不會拾取更新的選擇。 要解決此問題,您可以使用以“_”開頭的隱藏表單字段。
如何在您的第一份軟件開發工作中取得成功
12. MVC 框架與三層架構相比如何?
三層架構是一種架構風格,而 MVC 是一種設計模式。
話雖如此,在較大的應用程序中,MVC 形成了三層架構的表示層。 模型、視圖和控制器只關心表現——它們使用中間層來填充它們的模型。
13、我們應該如何在Spring中使用JDBC來優化性能?
Spring 提供了一個名為JDBCTemplate的模板類。 將 JDBC 與此模板一起使用可為流形提供更好的性能。
14. Spring 框架上下文中的“Bean”是什麼意思?
任何由 IoC 容器初始化的類在 Spring 中都稱為 bean。 Spring Bean 的生命週期由 Spring IoC Container 管理。
15. Spring Beans 中的“作用域”是什麼?
Spring Beans 帶有以下五個作用域:
- Prototype :每當有對 bean 的請求時,每次都會創建一個單獨的原型。
- Request :它與之前的範圍類似,但僅適用於基於 Web 的應用程序。 對於每個 HTTP 請求,Spring 都會創建一個新的 bean 實例。
- Singleton :每個容器只創建一個 bean,它充當該 bean 的默認範圍。 在所有這些實例中,bean 不能使用共享實例變量,因為它會導致數據不一致。
- 會話:為每個 HTTP 會話創建一個 bean
- Global-session :為 Portlet 應用程序創建全局會話。
Spring 框架是可擴展的,也就是說,您也可以創建自己的範圍。 bean 元素的“範圍”屬性用於定義範圍。
如何成為全棧開發人員
包起來…
這都是關於圍繞 Spring 框架的必知 Spring 面試問題和答案——準確地說是 Spring MVC。 如果您是一名希望開始使用 Spring 的 Java 開發人員,那麼現在正是最佳時機! 如果您正在尋找 Java 面試問題,請閱讀更多。
花一些寶貴的時間來解決 Java Spring 面試問題,你會很高興的。 由於它必須提供的功能,組織正在尋找對這個框架有強大控制力的開發人員。

報名參加世界頂尖大學的軟件工程課程。 獲得行政 PG 課程、高級證書課程或碩士課程,以加快您的職業生涯。
