Spring5框架2020最新版教程(二)IOC底層原理
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()要寫碟符的全路徑進去
藍色標記的那個介面裡麵包含一下擴充套件功能做個瞭解。
相關文章
- 底層原理探究(二)RunLoopOOP
- iOS底層原理(二):Runtime研究(一)iOS
- 二叉樹add底層原理二叉樹
- php底層原理之變數(二)PHP變數
- Spring IOC 原理深層解析Spring
- OC底層探索(十六) KVO底層原理
- ConcurrentHashMap底層原理HashMap
- synchronized底層原理synchronized
- Spring Cloud底層原理SpringCloud
- RunLoop底層原理探究OOP
- iOS底層原理-CategoryiOSGo
- golang select底層原理Golang
- RabbitMq底層原理分析MQ
- Netty的底層原理Netty
- Volatile的底層原理
- ArrayList集合底層原理
- HashMap的底層原理HashMap
- HashMap原理底層剖析HashMap
- spring5原始碼-ioc抽象層次設計 與 aop流程理解Spring原始碼抽象
- iOS底層原理總結 - 探尋Runtime本質(二)iOS
- iOS底層原理總結 – 探尋Runtime本質(二)iOS
- iOS底層原理總結--OC物件的本質(二)iOS物件
- HashMap原理詳解,包括底層原理HashMap
- NSDictionary底層實現原理
- iOS底層原理探究-RunloopiOSOOP
- iOS底層原理探究-RuntimeiOS
- AutoreleasePool底層實現原理
- 理解PHP底層原理(一)PHP
- 初步理解 JavaScript 底層原理JavaScript
- HashMap底層實現原理HashMap
- HashMap的底層原理分析HashMap
- volatile底層原理詳解
- Android之Context底層原理AndroidContext
- InnoDB索引與底層原理索引
- 初識LinkedList底層原理
- AOP底層原理之CGlibCGLib
- Vue中的底層原理Vue
- ArrayList底層原理淺析