IoC
IoC:Inverse of Control 控制反轉(zhuǎn)
DI:Dependency Injection 依賴注入
概念
A依賴于B
使用spring之前
A需要主動獲取Bean(通過new或工廠模式等)
使用spring之后,A只需要被動的接受B
從A的角度看,A對B的控制權(quán)限改變 ----> Inverse of Control
從B的角度看,spring負(fù)責(zé)將B注入給A ----> Dependency Injection
- spring核心:以Bean的方式來組織和管理Java應(yīng)用中的組件,提供配置層次的解耦
- 所有Bean由BeanFactory根據(jù)配置文件生成管理
- ApplicationContext是BeanFactory的加強(qiáng)。提供了更多的功能支持,如自動創(chuàng)建、程序國際化
優(yōu)點(diǎn)
- 與傳統(tǒng)開發(fā)更接近,依賴關(guān)系更直觀
- 可以延遲注入的時間,并按需注入,不必要實(shí)例化所有的依賴Bean
- 在有些參數(shù)可選的時候,設(shè)值注入更靈活