Spring面試題總結的很全面,附帶超詳細答案

2021-09-27 05:12:17 字數 1627 閱讀 9882

宣告式事務管理:這種方式意味著你可以將事務管理和業務**分離。你只需要通過註解或者xml配置管理事務。

它為程式設計式事務管理提供了乙個簡單的api而非一系列複雜的事務api(如jta).

它支援宣告式事務管理。

它可以和spring 的多種資料訪問技術很好的融合。

propagation_supports: 支援當前事務,如果當前沒有事務,就以非事務方式執行。

propagation_mandatory: 支援當前事務,如果當前沒有事務,就丟擲異常。

propagation_requires_new: 新建事務,如果當前存在事務,把當前事務掛起。

propagation_not_supported: 以非事務方式執行操作,如果當前存在事務,就把當前事務掛起。

propagation_never: 以非事務方式執行,如果當前存在事務,則丟擲異常。

propagation_nested: 如果當前存在事務,則在巢狀事務內執行。如果當前沒有事務,則進行與propagation_required類似的操作。

prototype:乙個bean可以定義多個例項。

classpathresource:訪問類載入路徑裡資源的實現類。

filesystemresource:訪問檔案系統裡資源的實現類。

servletcontextresource:訪問相對於 servletcontext 路徑裡的資源的實現類:

inputstreamresource:訪問輸入流資源的實現類。

bytearrayresource:訪問位元組陣列資源的實現類。 這些 resource 實現類,針對不同的的底層資源,提供了相應的資源訪問邏輯,並提供便捷的包裝,以利於客戶端程式的資源訪問。

after(最終通知):當某連線點退出的時候執行的通知(不論是正常返回還是異常退出)。

after-returning(後置通知):在某連線點正常完成後執行的通知。

after-throwing(異常通知):在方法丟擲異常退出時執行的通知。

around(環繞通知):在方法呼叫前後觸發的通知。

defaultadvisorautoproxycreator:預設通知者自動**建立器

metadata autoproxying:元資料自動**

二是採用靜態織入的方式,引入特定的語法建立「方面」,從而使得編譯器可以在編譯期間織入有關「方面」的**。

(2)cglib

cglib採用底層的位元組碼技術,為乙個類建立子類,並在子類中採用方法攔截的技術攔截所有父類的呼叫方法,並順勢織入橫切邏輯.它執行期間生成的**物件是目標類的擴充套件子類.所以無法通知final、private的方法,因為它們不能被覆寫.是針對類實現**,主要是為指定的類生成乙個子類,覆蓋其中方法.

在spring中預設情況下使用jdk動態**實現aop,如果proxy-target-class設定為true或者使用了優化策略那麼會使用cglib來建立動態**.spring aop在這兩種方式的實現上基本一樣.以jdk**為例,會使用jdkdynamicaopproxy來建立**,在invoke()方法首先需要織入到當前類的增強器封裝到***鏈中,然後遞迴的呼叫這些***完成功能的織入.最終返回**物件.

Spring面試題總結

自動裝配沒有自定義裝配方式那麼精確,而且不能自動裝配簡單屬性 基本型別 字串等 在使用時應注意。在spring的早期版本中,僅有兩個作用域 singleton和prototype,前者表示bean以單例的方式存在,ioc容器建立時就建立 後者表示ioc容器建立時不建立,在每次從容器中呼叫bean時,...

面試題總結 html面試題)

附上鏈結 doctype 的作用是什麼?宣告一般位於文件的第一行,它的作用主要是告訴瀏覽器以什麼樣的模式來解析文件。一般指定了之後會以標準模式來 進行文件解析,否則就以相容模式進行解析。在標準模式下,瀏覽器的解析規則都是按照最新的標準進行解析的。而在相容模式下,瀏 覽器會以向後相容的方式來模擬老式瀏...

spring面試題目

目錄 一 spring mvc工作原理二 為什麼要用spring 1 spring能很好的與各大框架進行整合 2 建立物件時,如果我們不用spring需要用工廠模式來建立,這個spring相當於工廠模式已經幫我們做了建立物件的功能 ioc 依賴注入 3 在用hibernate的時候,如果不用spri...