Spring5框架2020最新版教程(二)IOC底層原理

我的名字叫雪冬發表於2020-12-04

IOC容器的介紹

1、IOC概述
2、IOC底層原理
3、IOC介面(BeanFactory)

1、IOC概念

(1)、什麼是IOC

  • ①、控制反轉,把物件的建立和物件之間的呼叫過程,交給Spring進行管理
  • ②、使用IOC的目的:為了耦合度降低
  • ③、做的入門案例就是IOC實現

2、IOC底層原理

  • ①、XML解析、工廠模式、反射
  • ②、使用IOC的目的:為了耦合度降低
  • ③、做的[入門案例]
    在這裡插入圖片描述
    在這裡插入圖片描述

IOC的過程 進一步降低耦合度

第一步 XML配置檔案,配置建立的物件

 <!--配置User物件建立-->
<bean id="user" class="com.lds.springdemo.User"></bean>

第二步 有service類和dao類,xml解析、建立工廠

    Class UserFactory{
        public static UserDao getDao () {
        //1、xml解析,也就是解析那個配置好的applicationContext.xml檔案拿到類的全路徑
        String classValue = class屬性值;
        //2、通過反射建立物件
        Class clazz=Class.forName(classValue);
        return (UserDao)clazz.newInstance();
    }
}

3、IOC介面(BeanFactory)

1、IOC思想基於IOC容器完成,IOC容器底層就是物件工廠
2、Spring提供IOC容器實現的兩種方式:
(1)、BeanFactory:IOC容器基本實現,是Spring內部實現的一個介面,不提供給(不建議)開放人員進行使用
(2)、ApplicationContext:BeanFactory介面的子介面。提供了更多更強大的功能,一般是面向開放人員進行使用的。

區別:BeanFactory載入配置檔案的時候不會去建立物件,在獲取物件(使用)才去建立這個物件,而ApplicationContext載入配置檔案的時候會把配置檔案中物件進行建立。 一般選擇ApplicationContext進行使用,因為一般是伺服器去載入這些檔案。

(3)、ApplicationContext介面有實現類
在這裡插入圖片描述
這兩個類其中FileSystemXmlApplicationContext()要寫碟符的全路徑進去

在這裡插入圖片描述
藍色標記的那個介面裡麵包含一下擴充套件功能做個瞭解。

相關文章