【Spring】之 IOC初識


一、問題


(1)什麼是 IOC?

控制反轉(Inversion of Control,IOC),又稱 “依賴注入”(Dependency Lookup)。

  1. 通過控制反轉,對象創建和傳遞交由 IOC 容器。
  2. 有對象引用,則可依賴注入。

所謂IOC容器就是指的 SpringBean工廠裏面的 Map存儲結構(存儲了Bean的實例)。


(2)爲什麼要用 IOC?

可以用來降低計算機代碼之間的耦合度。

更好的管理對象本身,對象和對象之間的關係。

優點:

  1. 管理類的創建、銷燬
  2. 類與類之間的依賴關係(比如:循環依賴等等)
  3. 規避對象創建不規範,不一致
  4. 解耦合
  5. 讓開發者更關注業務開發

(3)怎麼創建 IOC?

Spring IOC 容器加載Bean方式有:XML配置方式 和 註解方式


1. XML配置方式

通過 bean標籤

public class Application {

    public static void main(String[] args) {

        ApplicationContext applicationContext = new ClassPathXmlApplicationContext("applicationContext.xml");

        Car car = (Car) applicationContext.getBean("car");
        
        Car car2 = (Car) applicationContext.getBean(Car.class);

     }
}

2. 註解方式

  1. 在對應需要的類上加上註解。

@Component @Controller @Service Repository等等

  1. 配置包掃描依賴
    context:component-scan

掃描對應包下的註解,將註解的類加載進 IOC 容器

註解方式,示例代碼:

@ComponentScan(basePackages = "com.donaldy")
public class Application {

    public static void main(String[] args) {

        ApplicationContext applicationContext = new AnnotationConfigApplicationContext(Application.class);

        Car car = (Car) applicationContext.getBean("car");

     }
}

(4)IOC 容器是如何初始化 Bean 實例的?

如圖:
在這裏插入圖片描述



二、一些概念


先了解一些概念和其名字所代表的意思。

(1)BeanFactory

beanFactory: bean 工廠

生產bean


(2)ApplicationContext

applicationContext: 應用上下文

總覽全局


(2)BeanDefinition

definition:定義

即每個bean都有自己定義的信息:屬性、類名、類型等等

反應對象之間的互相依賴關係

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章