Spring框架學習筆記(1)

Spring 框架學習筆記(1)

一、簡介

  • Rod Johnson(spring之父)

  • Spring是分層的Java SE/EE應用 full-stack(服務端的全棧)輕量級(跟EJB比)開源框架,以IoC(Inversion of Controll,控制反轉,解耦)和AOP(Aspect oriented programming,面向切面編程,底層是動態代理)為內核。

  • 提供:能整合開源世界眾多著名的第三方框架和類庫,逐漸成為使用最多的Java EE企業應用開源框架。

    • 表示層Spring MVC

    • 持久層Spring JDBCTemplate,Spring Data JPA

    • 業務層事務管理等等

二、Spring的優勢

  1. 方便解耦,簡化開發

  2. AOP編程的支援

  3. 聲明式事務的支援

  4. 方便程式的測試

  5. 方便集成各種優秀框架

  6. 降低JavaEE API的使用難度

  7. Java源碼是經典學習範例

三、Spring的體系結構

  

四、控制反轉 IOC

  • IoC:Inversion of Control,控制反轉。是指 把創建對象的控制權交給框架:要想得到一個對象,由原來的主動創建對象,變成自己被動接收 框架創建的對象。

  • IoC是Spring的核心思想之一

  • 作用:用於降低程式間的耦合性

  • IoC設計模式:工廠設計模式

 

  (1)XML的IoC

註冊bean:

  • 配置示例:<bean id=" " class=" " scope=" " init-method=" " dedtroy-method=" ">

  • id屬性:bean對象的唯一標識

  • class屬性:bean的全限定類名

  • scope屬性:bean的作用範圍(singleton:默認值,單例的;prototype:多例的)

  • init-method屬性:指定一個初始化方法

  • dedtroy-method:指定一個銷毀方法

bean 實例化的三種方式:

  1. 無參構造方法實例化,默認的:讓Spring調用bean的無參構造,生成bean實例對象給我們。

  2. 工廠靜態方法實例化:讓Spring調用一個工廠類的靜態方法,得到一個bean實例對象。

  3. 工廠非靜態方法實例化(實例化方法):讓Spring調用一個工廠對象的非靜態方法,得到一個bean實例對象。

依賴注入:下面講

  (2)註解的IoC

  (3)純註解的IoC

五、依賴注入DI

  (1)依賴注入:Dependency Injection,是Spring的Ioc核心的具體實現。(也叫 自動裝配)

    • 類里依賴什麼,由Spring注入(提供)什麼

  (2)三種常見注入方式:

    • set方法注入

    • 構造方法注入

    • p名稱空間注入

       (3)注入集合數據:

    比如:給數組、List、Set、Map等注入數據

    所有單列結構的數據集合,標籤可以互換使用。例如:List、Set、數組等

    所有鍵值對結構的數據集合,標籤可以互換使用。例如:Map、Properties等