spring學習筆記

2021-09-02 10:01:23 字數 1336 閱讀 2237

1、ioc與工廠模式的區別

個人覺得是工廠模式還是需要在自己的**內去建立物件,也就是我們還是要主動的去獲得,而ioc

就不要自己主動去建立獲得,而是當我們需要某個物件時,

ioc容器會根據配置主動建立這個物件(可理解為不是由自己的**來建立),然後給我們。

2、bean相關屬性與生命週期管理

id:bean的唯一標識;class:bean對應的類;

autowire="byname"/"bytype":根據物件屬性名=bean.id、屬性型別=bean.class的對映方式,通過對應的setter方法自動裝配。

parent="bean.id":繼承某個bean的配置,可以重寫繼承的屬性值。

abstrac="false"/"true" :若為true,則該bean不能被例項化,可以作為模版bean使用,被其它bean繼承。

depends-on="bean.id":表示必須先例項化"bean.id"對應的bean。

scope="single"/"prototype":設定bean是單例/多例模式。

管理生命週期:

bean中屬性:init-method="初始化方法";destroy-mothod="銷毀方法";

實現beanpostprocessor介面,並具體提供以下兩個方法的實現

object postprocessbeforeinitialization(object bean, string beanname):init-method之前被呼叫

object postprocessafterinitialization(object bean, string beanname):init-method之後被呼叫

返回值就是ioc容器最終給使用者的bean。

3、事務管理

@transactional,發生異常後回滾事務

(1)、使用 propagation 指定事務的傳播行為,即事務方法a呼叫另乙個事務方法b時,b使用a的事務還是新建乙個事務。

propagation=required(預設),b使用a的事務

propagation=required_new,b使用自己新建的事務

(2)、使用 isolation 指定事務的隔離級別,最常用的取值為 read_committed。

(3)、使用rollbackfor 與 norollbackfor來設定對那些異常回滾或那些不回滾,通常預設即可。

(4)、使用 readonly指定事務是否唯讀,可以幫助資料庫引擎優化事務。

(5)、使用 timeout 指定事務多少時間後進行強制回滾。

spring學習筆記

spring中兩個十分重要的概念 ioc di aop 1.ioc di inverse of control dependence injection ioc 控制反轉,看起來比較牛b,說起來十分簡單。就是不使用傳統的將類的依賴關係用硬編碼來維護的方式,而是讓容器來管理類之間的依賴,依賴關係在全在...

Spring 學習筆記

實現ioc的兩種方式 dependency injection 和 service locator 關於依賴注入 依賴注入指的是,當您在a物件內部需要b物件的某個功能時,a就依賴於b,您可以直接在a內部例項化b,但日後要修改就麻煩些。如果您不直接在a內部例項化b,而是通過ioc將乙個b例項從外部設定...

spring學習筆記

spring的bean的生命週期 只用反射機制通過class路徑獲得class型別,呼叫預設建構函式例項化乙個物件。呼叫bean的property設定物件的屬性 set方法 如果bean的類實現了beannameaware介面,那麼還會呼叫setbeanname方法 如果bean的類實現了beanf...