소스 검색

增加spring学习第七章:Spring IoC依赖来源

seamew 2 년 전
부모
커밋
82f926aa30
11개의 변경된 파일56개의 추가작업 그리고 0개의 파일을 삭제
  1. 56 0
      后端/Spring/spring源码学习/spring核心编程思想/7、Spring IoC依赖来源.md
  2. BIN
      后端/Spring/spring源码学习/spring核心编程思想/assets/image-20221009171247256.png
  3. BIN
      后端/Spring/spring源码学习/spring核心编程思想/assets/image-20221009172428729.png
  4. BIN
      后端/Spring/spring源码学习/spring核心编程思想/assets/image-20221009172505792.png
  5. BIN
      后端/Spring/spring源码学习/spring核心编程思想/assets/image-20221009172913945.png
  6. BIN
      后端/Spring/spring源码学习/spring核心编程思想/assets/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3NvbmdoYW8wMDc=,size_16,color_FFFFFF,t_70#pic_center-16652818457652.png
  7. BIN
      后端/Spring/spring源码学习/spring核心编程思想/assets/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3NvbmdoYW8wMDc=,size_16,color_FFFFFF,t_70#pic_center-16652818587724.png
  8. BIN
      后端/Spring/spring源码学习/spring核心编程思想/assets/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3NvbmdoYW8wMDc=,size_16,color_FFFFFF,t_70#pic_center-16652818797366.png
  9. BIN
      后端/Spring/spring源码学习/spring核心编程思想/assets/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3NvbmdoYW8wMDc=,size_16,color_FFFFFF,t_70#pic_center-16652818823628.png
  10. BIN
      后端/Spring/spring源码学习/spring核心编程思想/assets/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3NvbmdoYW8wMDc=,size_16,color_FFFFFF,t_70#pic_center-166528190061910.png
  11. BIN
      后端/Spring/spring源码学习/spring核心编程思想/assets/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3NvbmdoYW8wMDc=,size_16,color_FFFFFF,t_70#pic_center.png

+ 56 - 0
后端/Spring/spring源码学习/spring核心编程思想/7、Spring IoC依赖来源.md

@@ -0,0 +1,56 @@
+# Spring IoC依赖来源
+
+## 1. 依赖查找的来源
+
+查找来源
+
+![img](assets/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3NvbmdoYW8wMDc=,size_16,color_FFFFFF,t_70#pic_center.png)
+
+Spring 內建 BeanDefintion
+
+![img](assets/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3NvbmdoYW8wMDc=,size_16,color_FFFFFF,t_70#pic_center-16652818457652.png)
+
+Spring 內建单例对象
+
+![img](assets/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3NvbmdoYW8wMDc=,size_16,color_FFFFFF,t_70#pic_center-16652818587724.png)
+
+## 2. [依赖注入](https://so.csdn.net/so/search?q=依赖注入&spm=1001.2101.3001.7020)的来源
+
+注入来源
+
+![img](assets/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3NvbmdoYW8wMDc=,size_16,color_FFFFFF,t_70#pic_center-16652818823628.png)
+
+* 单例对象由 `org.springframework.beans.factory.config.SingletonBeanRegistry` 注册,`org.springframework.beans.factory.support.AbstractBeanFactory` 实现了这个接口,从容器中获取 Bean 的方法 `org.springframework.beans.factory.support.AbstractBeanFactory#doGetBean` 中,会先从单例对象中查找,如果查找到,直接返回;查找不到,则从 Spring BeanDefinition 中获取,并**执行生命周期函数**
+
+## 3. Spring 容器管理和游离对象
+
+* 依赖对象
+
+![img](assets/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3NvbmdoYW8wMDc=,size_16,color_FFFFFF,t_70#pic_center-166528190061910.png)
+
+## 4. Spring BeanDefinition 作为依赖来源
+
+  要素
+
+* 元数据:BeanDefinition
+* 注册:BeanDefinitionRegistry#registerBeanDefinition
+* 类型:延迟和非延迟
+* 顺序:Bean 生命周期顺序按照注册顺序
+
+## 5、外部化配置作为依赖来源
+
+![image-20221009171247256](assets/image-20221009171247256.png)
+
+# 面试题
+
+1、注入和查找的来源是否相同?
+
+![image-20221009172428729](assets/image-20221009172428729.png)
+
+2、单例对象能在IOC容器启动后注册码?
+
+![image-20221009172505792](assets/image-20221009172505792.png)
+
+3、spring依赖注入的来源有哪些?
+
+![image-20221009172913945](assets/image-20221009172913945.png)

BIN
后端/Spring/spring源码学习/spring核心编程思想/assets/image-20221009171247256.png


BIN
后端/Spring/spring源码学习/spring核心编程思想/assets/image-20221009172428729.png


BIN
后端/Spring/spring源码学习/spring核心编程思想/assets/image-20221009172505792.png


BIN
后端/Spring/spring源码学习/spring核心编程思想/assets/image-20221009172913945.png


BIN
后端/Spring/spring源码学习/spring核心编程思想/assets/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3NvbmdoYW8wMDc=,size_16,color_FFFFFF,t_70#pic_center-16652818457652.png


BIN
后端/Spring/spring源码学习/spring核心编程思想/assets/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3NvbmdoYW8wMDc=,size_16,color_FFFFFF,t_70#pic_center-16652818587724.png


BIN
后端/Spring/spring源码学习/spring核心编程思想/assets/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3NvbmdoYW8wMDc=,size_16,color_FFFFFF,t_70#pic_center-16652818797366.png


BIN
后端/Spring/spring源码学习/spring核心编程思想/assets/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3NvbmdoYW8wMDc=,size_16,color_FFFFFF,t_70#pic_center-16652818823628.png


BIN
后端/Spring/spring源码学习/spring核心编程思想/assets/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3NvbmdoYW8wMDc=,size_16,color_FFFFFF,t_70#pic_center-166528190061910.png


BIN
后端/Spring/spring源码学习/spring核心编程思想/assets/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3NvbmdoYW8wMDc=,size_16,color_FFFFFF,t_70#pic_center.png