spring學習筆記

2021-04-28 14:29:04 字數 1235 閱讀 8793

spring中兩個十分重要的概念——ioc/di & aop

1.ioc/di(inverse of control/dependence injection)

ioc:控制反轉,看起來比較牛b,說起來十分簡單。就是不使用傳統的將類的依賴關係用硬編碼來維護的方式,而是讓容器來管理類之間的依賴,依賴關係在全在乙個配置檔案上。這樣,就將造成耦合的根源——複雜的依賴關係,進行了統一的,集約式管理。

di:依賴注入,其實就是控制反轉。只是比ioc的表達稍微好點,更能望文生意些。依賴注入,簡單地說,就是在執行期間,由容器將元件之間的依賴關係注入到元件中。

ioc/di的作用:有了這樣的設計,我們只需要專心編寫乙個個高內聚的零件,而不用關心這些零件如何組合起來工作。這個問題是由依賴關係的配置檔案需要關注的。這樣將元件和依賴分離,提高了元件的可重用性。

ioc的配置:

ioc是面向元件程式設計的一種程式設計思想。元件與元件的依賴關係,本來是程式設計師來管理,現在我們反轉給ioc容器完成,我們只需要專心編寫乙個個元件,而不用關心這些元件如何組合起來工作。

三層體系架構,層次關係一目了然。

2.aop(aspect oriented programming)

aop:翻譯為面向切面程式設計。我個人認為,說成是面向動作程式設計好象更加貼切。因為aop是將某類動作高度內聚的程式設計方法。

aop在spring中的應用:事務管理機制。spring的事務管理是通過aop**實現的。

spring的宣告式事務:

spring引人注目的重要因素之一是它全面的事務支援。spring提供了一致的事務管理抽象,為複雜的事務api提供了一致的程式設計模型,如jta、jdbc、hibernate、jpa和jdo,並且支援宣告式事務。

spring的事務管理分為程式設計式事務和宣告式事務,用得最多的是宣告式事務。

宣告式事務的配置:

宣告式事務就是只需在配置檔案裡面宣告就可以使用,通過expression="execution(* com.softeem.service.*.*(..))"表示式萬用字元來管理哪些類的哪些方法需要使用事務,read-only="true"表示唯讀,就是不使用事務,預設的是false,使用事務。一般的,查詢資料不用事務,其他要使用。

有時候工程跑起來呼叫了相關dao的方法,但是hibernate就是沒有發出相應的sql語句,往往就是因為事務的管理出錯,本來要使用事務的地方沒使用,使得事務回滾,這裡要注意下。

以上是spring的核心技術,但是spring裡面的內容遠不止這些,其他的內容有待進一步研究。希望大家看完能有所收穫。

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...

spring學習筆記

什麼是spring?答 spring是乙個輕量級 不占用很多資源,記憶體,cup 的開源框架,是為了減少企業應用開發的複雜性而建立出來的。它的核心是ioc容器。整合了許多現有的框架 比如 hibernate,struts2,mybatis,等 它有兩個目的 乙個是讓現用的技術更加易用,還有乙個是給開...