Java進階架構之開源框架面試題系列:Spring+SpringMVC+MyBatis

Java進階架構之開源框架面試題系列:Spring+SpringMVC+MyBatis

開源框架

  • Spring5 Framework體系結構
  • spring5概述
  • Spring5環境搭建
  • Spring MVC
  • AOP源碼解析
  • IOC源碼解析
  • Mybatis
Java進階架構之開源框架面試題系列:Spring+SpringMVC+MyBatis

spring

Java進階架構之開源框架面試題系列:Spring+SpringMVC+MyBatis

什麼是Spring框架?Spring框架有哪些主要模塊?

使用Spring框架能帶來哪些好處?

什麼是控制反轉(IOC)?什麼是依賴注入?

請解釋下Spring框架中的IOC?

BeanFactory和ApplicationContext有什麼區別?

Spring有幾種配置方式?

如何用基於XML配置的方式配置Spring?

Java進階架構之開源框架面試題系列:Spring+SpringMVC+MyBatis

怎樣用註解的方式配置Spring?

請解釋Spring Bean的生命週期?

Spring Bean的作用域之間有什麼區別?

什麼是Spring inner beans?

Spring框架中的單例Beans是線程安全的麼?

請舉例說明如何在Spring中注入一個Java Collection?

如何向Spring Bean中注入一個Java.util.Properties?

請解釋Spring Bean的自動裝配?

如何開啟基於註解的自動裝配?

Java進階架構之開源框架面試題系列:Spring+SpringMVC+MyBatis

請解釋自動裝配模式的區別?

請舉例解釋@Required註解?

請舉例解釋@Autowired註解?

請舉例說明@Qualifier註解?

構造方法注入和設值注入有什麼區別?

Spring框架中有哪些不同類型的事件?

FileSystemResource和ClassPathResource有何區別?

Spring 框架中都用到了哪些設計模式?


SpringMVC

Java進階架構之開源框架面試題系列:Spring+SpringMVC+MyBatis

什麼是SpringMvc?

Spring MVC的優點

SpringMVC工作原理?

SpringMVC流程?

SpringMvc的控制器是不是單例模式,如果是,有什麼問題,怎麼解決?

如果你也用過struts2.簡單介紹下springMVC和struts2的區別有哪些?

SpingMvc中的控制器的註解一般用那個,有沒有別的註解可以替代?

@RequestMapping註解用在類上面有什麼作用?

怎麼樣把某個請求映射到特定的方法上面?

如果在攔截請求中,我想攔截get方式提交的方法,怎麼配置?

怎麼樣在方法裡面得到Request,或者Session?

我想在攔截的方法裡面得到從前臺傳入的參數,怎麼得到?

如果前臺有很多個參數傳入,並且這些參數都是一個對象的,那麼怎麼樣快速得到這個對象?

SpringMvc中函數的返回值是什麼?

SpringMVC怎麼樣設定重定向和轉發的?

SpringMvc用什麼對象從後臺向前臺傳遞數據的?

SpringMvc中有個類把視圖和數據都合併的一起的,叫什麼?

怎麼樣把ModelMap裡面的數據放入Session裡面?

SpringMvc怎麼和AJAX相互調用的?

當一個方法向AJAX返回特殊對象,譬如Object,List等,需要做什麼處理?

SpringMvc裡面攔截器是怎麼寫的

講下SpringMvc的執行流程


MyBatis

Java進階架構之開源框架面試題系列:Spring+SpringMVC+MyBatis

#{}和${}的區別是什麼?

通常一個Xml映射文件,都會寫一個Dao接口與之對應,請問,這個Dao接口的工作原理是什麼?Dao接口裡的方法,參數不同時,方法能重載嗎?

Mybatis是如何進行分頁的?分頁插件的原理是什麼?

Mybatis是如何將sql執行結果封裝為目標對象並返回的?都有哪些映射形式?

Xml映射文件中,除了常見的select|insert|update|delete標籤之外,還有哪些標籤?

簡述Mybatis的插件運行原理,以及如何編寫一個插件

一級、二級緩存

Mybatis是否支持延遲加載?如果支持,它的實現原理是什麼?

Mybatis映射文件中,如果A標籤通過include引用了B標籤的內容,請問,B標籤能否定義在A標籤的後面,還是說必須定義在A標籤的前面?

簡述Mybatis的Xml映射文件和Mybatis內部數據結構之間的映射關係?

面試題及答案的獲取方式,歡迎加入Java進階架構交流:805685193。提供Java架構進階思維導圖,主要分享分佈式架構、高可擴展、高性能、高併發、性能優化、Spring MVC、Redis、MyBatis、Nginx、Jvm大型分佈式項目實戰學習架構師視頻。


答案解析

什麼是Spring框架?Spring框架有哪些主要模塊?

Spring框架是一個為Java應用程序的開發提供了綜合、廣泛的基礎性支持的Java平臺。

Spring幫助開發者解決了開發中基礎性的問題,使得開發人員可以專注於應用程序的開發。

Spring框架本身亦是按照設計模式精心打造,這使得我們可以在開發環境中安心的集成Spring框架,不必擔心Spring是如何在後臺進行工作的。

Spring框架至今已集成了20多個模塊。這些模塊主要被分如下圖所示的核心容器、數據訪問/集成,、Web、AOP(面向切面編程)、工具、消息和測試模塊。

SpringMVC工作原理?

  1. 客戶端發送請求到DispatcherServlet
  2. DispatcherServlet查詢handlerMapping找到處理請求的Controller
  3. Controller調用業務邏輯後,返回ModelAndView
  4. DispatcherServlet查詢ModelAndView,找到指定視圖
  5. 視圖將結果返回到客戶端

MyBatis的好處是什麼?

  1. MyBatis把sql語句從Java源程序中獨立出來,放在單獨的XML文件中編寫,給程序的維護帶來了很大便利。
  2. MyBatis封裝了底層JDBC API的調用細節,並能自動將結果集轉換成Java Bean對象,大大簡化了Java數據庫編程的重複工作。
  3. 因為MyBatis需要程序員自己去編寫sql語句,程序員可以結合數據庫自身的特點靈活控制sql語句,因此能夠實現比Hibernate等全自動orm框架更高的查詢效率,能夠完成複雜查詢。

面試題及答案的獲取方式,歡迎加入Java進階架構交流:805685193。提供Java架構進階思維導圖,主要分享分佈式架構、高可擴展、高性能、高併發、性能優化、Spring MVC、Redis、MyBatis、Nginx、Jvm大型分佈式項目實戰學習架構師視頻。


分享到:


相關文章: