Spring IOC--控制反轉
1.Spring IOC
IOC全稱Inversion Of Control,被翻譯成控制反轉
控制反轉是指程式中物件的獲取方式發生反轉,由最初的NEW方式
建立,轉變為由第三方框架建立,注入(DI),它降低物件之間的
耦合度
Spring容器採用DI方式實現IOC控制,IOC是Spring框架的基礎和
核心
DI全稱是Dependency Injection,被翻譯成依賴注入,依賴注入的
基本原理是將一起工作具有關聯關係的物件通過方法引數傳入,建
立關係,因此容器的工作就是建立Bean物件時注入依賴關係
IOC是一種思想,而DI是實現IOC的主要技術途徑
DI主要有兩種注入方式,即Setter注入和構造器注入
1)Setter注入
public class B{}
public class A{
private B b;
public void setB(B b){
this.b = b;
}
}
2)構造器注入
public class B{}
public class A{
private B b;
public A(B b){
this.b = b;
}
}
自動裝配
Spring容器可以自動裝配(autowire)相互協作Bean之間的關聯
關係,autowire可以針對單個Bean進行設定,方便之處在於減少
XML注入配置
在配置檔案中,可以在<bean>標籤中使用autowire屬性指定自動
裝配的規則,一共有三種型別值
byName:根據屬性名自動裝配,此選項將檢查容器,根據名字查
找與屬性名一致的Bean,然後將其與屬性自動裝配(
setter注入)
byType:如果容器中存在一個與指定屬性型別相同的Bean,則將
與此屬性自動裝配(setter注入)
constructor:與byType方式類似,不同之處在於它應用於構造器
方式(構造器注入)
2.引數值注入
1)注入基本值
<value>標籤可以通過字屬性符串指定或構造器引數的值,容器
將字串從java.lang.String型別轉換為實際的屬性或構造器參
數型別,然後給Bean物件注入
2)注入Bean物件
注入外部Bean(引用方式,方便重用)
3)注入集合
通過<list>,<set>,<map>,<props>標籤來定義與Java中
對應的List,Set,Map及Properties的屬性值
List,Set,Map及Properties都可以採用引入方式,<util:list>
<util:set>,<util:map>,<util:properties>
4)注入Spring表示式
Spring表示式語言,和EL表示式在語法上很相似,可以讀取一
個Bean物件或集合中的資料
5)注入NULL或空字串
Spring將屬性的空引數當做空String
<bean>
<property name="name" value=""/>
</bean>
如果需要注入NULL,可以使用<null>標籤
<bean>
<property name="name">
<null/>
</property>
</bean>
3.基於註解依賴注入
具有依賴關係的Bean物件,可以使用以下任意一種註解實現注入
@Autowired/@Qualifer
可以處理構造器注入和Setter注入
@Autowired寫在構造器或set方法前,宣告需要為其注入Bean,
@Qualifer寫在引數前面,宣告注入Bean的id
@Autowired/@Qualifer也可以寫在屬性上,作用和寫在set方
法上類似,但是隻會執行一行程式碼(賦值程式碼)
注意:注入物件是單例時,@Qualifer可省略,此時Spring按照
引數型別匹配引數值
@Resource
只能處理Setter注入
@Resource也可以寫在屬性上,作用和寫在set方法上類似,但
是隻會執行一行程式碼(賦值程式碼)
注意:注入物件是單例時,(name="識別符號")可省略,此時
Spring按照引數型別匹配引數值
問題:
@Autowired與@Resource的區別
注入基本值或Spring表示式
@Value註解可以注入基本值或Spring表示式值
語法:
@Value("張三")
@Value("#{user.name}")
相關文章
- Spring 控制反轉Spring
- Spring 控制反轉和依賴注入Spring依賴注入
- spring概念理解之IOC(控制反轉)Spring
- Day66 Spring IOC(控制/反轉)Spring
- 【Spring】Spring依賴注入與控制反轉理解Spring依賴注入
- Spring基礎 - Spring核心之控制反轉(IOC)Spring
- Spring之初識Ioc(控制反轉)以及引入SpringSpring
- Spring框架之IOC/DI(控制反轉/依賴注入)Spring框架依賴注入
- Spring框架系列(3) - 深入淺出Spring核心之控制反轉(IOC)Spring框架
- Spring理論基礎-控制反轉和依賴注入Spring依賴注入
- 理解Spring中依賴注入(DI)與控制反轉(IoC)Spring依賴注入
- Spring---IoC(控制反轉)原理學習筆記【全】Spring筆記
- spring中的控制反轉和依賴注入 --講解Spring依賴注入
- 前端解讀控制反轉(IOC)前端
- 依賴注入和控制反轉依賴注入
- Spring入門學習手冊 1:最簡單的反轉控制Spring
- 前端理解依賴注入(控制反轉)前端依賴注入
- IoC(控制反轉)的理解筆記筆記
- J2EE模式-控制反轉模式
- 極簡架構模式-控制反轉架構模式
- 控制反轉(IOC容器)-Autofac入門
- 深入理解spring容器中的控制反轉(IOC)和依賴注入(DI)Spring依賴注入
- .NET IoC模式依賴反轉(DIP)、控制反轉(Ioc)、依賴注入(DI)模式依賴注入
- Spring4學習(一)IoC控制反轉也稱為DI依賴注入Spring依賴注入
- 【物件導向設計】控制反轉IoC物件
- 控制反轉(IoC)與依賴注入(DI)依賴注入
- spring mvc兩大核心技術:1控制反轉 2面向切面的程式設計SpringMVC程式設計
- 8.(轉)控制反轉(IoC)與依賴注入(DI)依賴注入
- PHP 控制反轉(IoC) 和 依賴注入(DI)PHP依賴注入
- Java:控制反轉(IoC)與依賴注入(DI)Java依賴注入
- PHP 控制反轉(IOC)和依賴注入(DI)PHP依賴注入
- 小例子 理解 Laravel 中的 控制反轉模式Laravel模式
- 控制反轉與依賴注入(IOC和DI)依賴注入
- java 控制反轉和依賴注入的理解Java依賴注入
- Spring系列第二講 控制反轉(IoC)與依賴注入(DI),晦澀難懂麼?Spring依賴注入
- 深入理解IoC(控制反轉)、DI(依賴注入)依賴注入
- 用最簡單的方式理解 IoC 控制反轉
- Laravel Inversion of Control (控制反轉) 概念簡介Laravel