Spring高頻率面試歸納

1、Spring怎樣定義類的作用域

通過bean 定義中的scope屬性來定義。

2、Spring支持的幾種bean的作用域

支持以下五種bean的作用域:

  • singleton : bean在每個Spring ioc 容器中只有一個實例。(缺省默認)
  • prototype:一個bean的定義可以有多個實例。
  • request:每次http請求都會創建一個bean,該作用域僅在基於web的Spring ApplicationContext情形下有效。
  • session:在一個HTTP Session中,一個bean定義對應一個實例。該作用域僅在基於web的Spring ApplicationContext情形下有效。
  • global-session:在一個全局的HTTP Session中,一個bean定義對應一個實例。該作用域僅在基於web的Spring ApplicationContext情形下有效。

3、Spring支持的事務管理類型

  • 編程式事務管理:這意味你通過編程的方式管理事務,給你帶來極大的靈活性,但是難維護。
  • 聲明式事務管理:這意味著你可以將業務代碼和事務管理分離,你只需用註解和XML配置來管理事務。

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

控制反轉(IOC) : 傳統應用程序是由我們自己在對象中主動控制去直接獲取依賴對象,現在由容器幫我們查找及注入依賴對象,對象只是被動的接受依賴對象,所以是控制反轉。

依賴注入:組件之間依賴關係由容器在運行期決定,形象的說,即由容器動態的將某個依賴關係注入到組件之中。通過依賴注入機制,我們只需要通過簡單的配置,而無需任何代碼就可指定目標需要的資源,完成自身的業務邏輯,而不需要關心具體的資源來自何處,由誰實現。

實現方式:構造器注入、Setter方法注入、接口注入。註解裝配在默認情況下是不開啟的,為了使用註解裝配,我們必須在Spring配置文件中配置 元素。

5、Spring由幾大核心組件?

a、Bean 組件

b、Context 組件

c、Core 組件

6、Spring MVC核心工作流程 ?

Spring高頻率面試歸納

a、用戶向服務器發送request請求,請求被SpringMVC中央控制器DispatcherServlet捕獲;

b、DispatcherServlet對請求URL進行解析,得到請求資源標識符(URI)。然後根據該URI,調用HandlerMapping映射處理器,將請求發送給指定的Controller。

c、 Controller執行完成後,將返回的數據信息封裝到ModelAndView對象中,最後通過ViewResolver視圖解析器選擇一個合適的View 渲染視圖返回界面。

7、spring事務隔離級別(五種面試最好全部說出來)

a、DEFAULT 這是一個PlatfromTransactionManager默認的隔離級別,使用數據庫默認的事務隔離級別.

b、未提交讀(read uncommited) : 髒讀,不可重複讀,虛讀都有可能發生 。是最低的事務隔離級別,它允許另外一個事務可以看到這個事務未提交的數據。

c、已提交讀 (read commited): 避免髒讀。但是不可重複讀、虛讀有可能發生 。保證一個事物提交後才能被另外一個事務讀取。另外一個事務不能讀取該事物未提交的數據。Oracle 默認

d、可重複讀 (repeatable read): 這種事務隔離級別可以防止髒讀,不可重複讀。但是可能會出現幻象讀。它除了保證一個事務不能被另外一個事務讀取未提交的數據之外還避免了以下情況產生(不可重複讀)。Mysql 默認

e、串行化的 (serializable) : 這是花費最高代價、效率差但最可靠的事務隔離級別。事務被處理為順序執行。除了防止髒讀,不可重複讀之外,還避免了幻象讀(避免三種)。

8、Spring事務特性(四種面試最好全部說出來)

a、原子性 (atomicity): 一個事務中所有對數據庫的操作是一個不可分割的操作序列,要麼全做要麼全不做。

b、一致性 (consistency): 事務的執行的前後數據的完整性保持一致.

c、隔離性 (isolation): 一個事務執行的過程中,不應該受到其他事務的干擾

d、持久性(durability) : 一個事物一旦提交,它對數據庫的改變就是永久的

9、Spring事務七個傳播特性(七種面試說一兩個即可)

a、Propagation.REQUIRED (默認) 面試必須說出來這個。

調用方已經存在事務,則加入到同一個事務中運行,否則,自啟一個事務

b、Propagation.REQUIRES_NEW

無論何時自身都會開啟新事務

c、Propagation.SUPPORTS

調用方存在事務,則加入到同一個事務中運行,若不存在事務,則以非事務的方式運行

d、Propagation.NOT_SUPPORTED

調用方存在事務,則會被掛起,直到被調用方運行完畢後,事務恢復。

e、Propagation.MANDATORY

調用方存在事務,則加入到同一個事務中運行,若不存在,則拋出異常

f、Propagation.NEVER

調用方存在事務,則拋出異常

g、Propagation.NESTED

若調用方存在事務,則運行一個嵌套事務,若調用方不存在事務,則以Propagation.REQUIRED的方式運行,即開啟一個新的事務

10、簡述Spring Bean的生命週期

實例化、初始化、使用、銷燬。

Spring高頻率面試歸納

扯出關鍵詞:BeanFactoryPostProcessor 、BeanPostProcessor 、init-method/destroy-method


分享到:


相關文章: