spring框架簡單注入方式
1、Spring框架
IOC:反轉控制(查詢資源的被動方式)
AOP:面向切面程式設計(宣告式事務)
2、Spring之HelloWorld
1.搭建環境
a.建立普通的javaProject.
b.匯入相關的jar包(beans,core,context,expression,commons-logging)
c.建立Spring的核心配置檔案: applicationContext.xml
2.編寫java類
3.在IOC中配置bean.
4.測試:
a.例項化SpringIOC容器
b.從IOC容器中獲取bean
3、IOC&DI
SpringIOC容器的結構:
a.BeanFactory:SpringIOC容器的基礎設施,面向框架本身的.
b.ApplicationContext:面向開發者的.
c.ConfigurableApplicationContext:是ApplicationContext的子介面,額外的提供了refresh,close兩個方法。
d.
ClassPathXmlApplicationContext:從類路徑下載入讀取配置檔案
FileSystemXmlApplicationContext:從檔案系統下載入讀取配置檔案
4、依賴注入(DI)
1.set方式注入
a.在java類中提供成員變數(屬性)對應的set方法.
b.在IOC容器中通過property標籤進行屬性值的注入
2.構造器方式注入
a.在java類中提供對應的構造器(一定要提供無引數的構造器)
b.在IOC容器中通過constructor-arg標籤進行屬性值的注入
c.constructor-arg標籤的屬性:
value: 指定普通屬性值
ref: 引用其他的bean
index: 指定構造器引數的位置
type: 指定構造器引數的型別
5、注入屬性值的細節
1.字面值
a.遇到特殊字元,可以使用轉義字元或者是<![CDATA[....]]>
2.引用其他的bean
a.使用ref來指定IOC容器中已經存在的bean的id。
3.內部bean
a.定義到一個bean的內部的bean.
b.內部bean只能在bean的內部來使用.
c.內部bean的定義可以省略id的配置.
4.null值與級聯屬性
a.如果要給bean的屬性裝配null值,可以使用Spring提供的好的<null/>專有標籤.
b.Spring支援使用級聯的方式給屬性進行賦值.
5.集合型別的屬性注入
a.集合型別:
List: <list></list>
Set: <set></set>
Map: <map> <entry></entry></map>
Properties: <props><prop></prop> </props>
6.獨立的集合bean
a.先匯入util名稱空間
b.使用util:list來配置獨立的集合bean
7.p名稱空間
a.先匯入p名稱空間
b.在bean的配置中使用p:xxx 或者是p:xxx-ref來進行屬性值的注入
6、自動裝配
1.byName
a.根據bean的id值進行裝配
b.根據IOC容器中bean的id值與要裝配的bean的set風格的屬性名進行匹配.
c.匹配上則裝配成功,匹配不上則裝配失敗,不會拋異常.
2.byType:
a.根據bean的型別進行裝配
b.根據IOC容器中bean的型別(class)與要裝配的bean的屬性的型別進行匹配
c.使用byType的方式需要注意:如果匹配上多個相容的型別(本型別與子型別),會丟擲異常.