mirror of
https://github.com/youthlql/JavaYouth.git
synced 2026-03-13 21:33:42 +08:00
图床修改
This commit is contained in:
@@ -250,7 +250,7 @@ public class MainTest {
|
||||
|
||||
### 流程图-Bean生命周期与后置处理器
|
||||
|
||||
<img src="https://upyunimg.imlql.cn/youthlql@1.0.7/spring-sourcecode-v1/flow_chart/Bean%E7%94%9F%E5%91%BD%E5%91%A8%E6%9C%9F%E4%B8%8E%E5%90%8E%E7%BD%AE%E5%A4%84%E7%90%86%E5%99%A8.png">
|
||||
<img src="https://npm.elemecdn.com/youthlql@1.0.7/spring-sourcecode-v1/flow_chart/Bean%E7%94%9F%E5%91%BD%E5%91%A8%E6%9C%9F%E4%B8%8E%E5%90%8E%E7%BD%AE%E5%A4%84%E7%90%86%E5%99%A8.png">
|
||||
|
||||
### BeanPostProcessor-执行无参构造
|
||||
|
||||
@@ -258,7 +258,7 @@ public class MainTest {
|
||||
|
||||
#### Debug调用栈
|
||||
|
||||
<img src="https://upyunimg.imlql.cn/youthlql@1.0.6/spring-sourcecode-v1/chapter_03/image-20210929142257774.png"/>
|
||||
<img src="https://npm.elemecdn.com/youthlql@1.0.6/spring-sourcecode-v1/chapter_03/image-20210929142257774.png"/>
|
||||
|
||||
#### AbstractApplicationContext#registerBeanPostProcessors()注册Bean后置处理器
|
||||
|
||||
@@ -345,7 +345,7 @@ protected void registerBeanPostProcessors(ConfigurableListableBeanFactory beanFa
|
||||
- Bean工厂后置处理器调用的是`invokeBeanFactoryPostProcessors(ConfigurableListableBeanFactory , List<BeanFactoryPostProcessor> )`
|
||||
- Bean后置处理器调用的是`registerBeanPostProcessors(ConfigurableListableBeanFactory , AbstractApplicationContext )`
|
||||
|
||||
<img src="https://upyunimg.imlql.cn/youthlql@1.0.6/spring-sourcecode-v1/chapter_03/image-20210929144115434.png"/>
|
||||
<img src="https://npm.elemecdn.com/youthlql@1.0.6/spring-sourcecode-v1/chapter_03/image-20210929144115434.png"/>
|
||||
|
||||
|
||||
|
||||
@@ -355,7 +355,7 @@ protected void registerBeanPostProcessors(ConfigurableListableBeanFactory beanFa
|
||||
> 2. BeanFactoryPostProcessor是先执行完每一个的无参构造和实现的几个方法,再去执行下一个BeanFactoryPostProcessor
|
||||
> 3. BeanPostProcessor是先执行所有BeanPostProcessor的无参构造,再执行所有BeanPostProcessor实现的方法。
|
||||
|
||||
<img src="https://upyunimg.imlql.cn/youthlql@1.0.6/spring-sourcecode-v1/chapter_03/image-20210929145612361.png"/>
|
||||
<img src="https://npm.elemecdn.com/youthlql@1.0.6/spring-sourcecode-v1/chapter_03/image-20210929145612361.png"/>
|
||||
|
||||
### MergedBeanDefinitionPostProcessor-执行无参构造
|
||||
|
||||
@@ -365,7 +365,7 @@ protected void registerBeanPostProcessors(ConfigurableListableBeanFactory beanFa
|
||||
|
||||
同上
|
||||
|
||||
<img src="https://upyunimg.imlql.cn/youthlql@1.0.6/spring-sourcecode-v1/chapter_03/image-20210929150155334.png"/>
|
||||
<img src="https://npm.elemecdn.com/youthlql@1.0.6/spring-sourcecode-v1/chapter_03/image-20210929150155334.png"/>
|
||||
|
||||
|
||||
|
||||
@@ -375,7 +375,7 @@ protected void registerBeanPostProcessors(ConfigurableListableBeanFactory beanFa
|
||||
|
||||
#### Debug调用栈
|
||||
|
||||
<img src="https://upyunimg.imlql.cn/youthlql@1.0.6/spring-sourcecode-v1/chapter_03/image-20210929160714133.png"/>
|
||||
<img src="https://npm.elemecdn.com/youthlql@1.0.6/spring-sourcecode-v1/chapter_03/image-20210929160714133.png"/>
|
||||
|
||||
|
||||
|
||||
@@ -542,7 +542,7 @@ protected void registerBeanPostProcessors(ConfigurableListableBeanFactory beanFa
|
||||
3. 判断是不是想要的类型。
|
||||
3. 这里有没有优化空间,再存一个BeanType=>BeanName的对应关系?但是这样的关系是一对多的,同一个BeanType下可能有多个beanName,Spring可能是考虑到空间成本,没有这样弄。
|
||||
|
||||
<img src="https://upyunimg.imlql.cn/youthlql@1.0.6/spring-sourcecode-v1/chapter_03/image-20210929163852056.png"/>
|
||||
<img src="https://npm.elemecdn.com/youthlql@1.0.6/spring-sourcecode-v1/chapter_03/image-20210929163852056.png"/>
|
||||
|
||||
|
||||
|
||||
@@ -554,7 +554,7 @@ protected void registerBeanPostProcessors(ConfigurableListableBeanFactory beanFa
|
||||
|
||||
2. 我们来看看此时单例池里有哪些对象
|
||||
|
||||
<img src="https://upyunimg.imlql.cn/youthlql@1.0.6/spring-sourcecode-v1/chapter_03/image-20210929170557025.png" />
|
||||
<img src="https://npm.elemecdn.com/youthlql@1.0.6/spring-sourcecode-v1/chapter_03/image-20210929170557025.png" />
|
||||
|
||||
```java
|
||||
protected boolean isTypeMatch(String name, ResolvableType typeToMatch, boolean allowFactoryBeanInit)
|
||||
@@ -687,13 +687,13 @@ protected void registerBeanPostProcessors(ConfigurableListableBeanFactory beanFa
|
||||
|
||||
在此方法里为什么Cat会进来两次呢?往后面看
|
||||
|
||||
<img src="https://upyunimg.imlql.cn/youthlql@1.0.6/spring-sourcecode-v1/chapter_03/image-20210929172115093.png" />
|
||||
<img src="https://npm.elemecdn.com/youthlql@1.0.6/spring-sourcecode-v1/chapter_03/image-20210929172115093.png" />
|
||||
|
||||
### InstantiationAwareBeanPostProcessor-执行postProcessBeforeInstantiation方法
|
||||
|
||||
#### Debug调用栈
|
||||
|
||||
<img src="https://upyunimg.imlql.cn/youthlql@1.0.6/spring-sourcecode-v1/chapter_03/image-20210929172554306.png"/>
|
||||
<img src="https://npm.elemecdn.com/youthlql@1.0.6/spring-sourcecode-v1/chapter_03/image-20210929172554306.png"/>
|
||||
|
||||
#### AbstractApplicationContext#finishBeanFactoryInitialization()完成BeanFactory初始化
|
||||
|
||||
@@ -746,7 +746,7 @@ protected void registerBeanPostProcessors(ConfigurableListableBeanFactory beanFa
|
||||
|
||||
2. 上面我们也看了只有Cat的对象还没创建,还没初始化,所以下面就开始创建对象了。
|
||||
|
||||
<img src="https://upyunimg.imlql.cn/youthlql@1.0.6/spring-sourcecode-v1/chapter_03/image-20210929173103459.png" />
|
||||
<img src="https://npm.elemecdn.com/youthlql@1.0.6/spring-sourcecode-v1/chapter_03/image-20210929173103459.png" />
|
||||
|
||||
|
||||
|
||||
@@ -860,7 +860,7 @@ protected void registerBeanPostProcessors(ConfigurableListableBeanFactory beanFa
|
||||
|
||||
#### Debug调用栈
|
||||
|
||||
<img src="https://upyunimg.imlql.cn/youthlql@1.0.6/spring-sourcecode-v1/chapter_03/image-20210929174424136.png"/>
|
||||
<img src="https://npm.elemecdn.com/youthlql@1.0.6/spring-sourcecode-v1/chapter_03/image-20210929174424136.png"/>
|
||||
|
||||
> 前面还是一样的执行逻辑,直接来到下面
|
||||
|
||||
@@ -1003,7 +1003,7 @@ protected void registerBeanPostProcessors(ConfigurableListableBeanFactory beanFa
|
||||
|
||||
1. 实例提供者:
|
||||
|
||||
<img src="https://upyunimg.imlql.cn/youthlql@1.0.6/spring-sourcecode-v1/chapter_03/image-20210929175511913.png" >
|
||||
<img src="https://npm.elemecdn.com/youthlql@1.0.6/spring-sourcecode-v1/chapter_03/image-20210929175511913.png" >
|
||||
|
||||
|
||||
|
||||
@@ -1025,7 +1025,7 @@ protected void registerBeanPostProcessors(ConfigurableListableBeanFactory beanFa
|
||||
|
||||
### Cat-执行无参构造方法
|
||||
|
||||
<img src="https://upyunimg.imlql.cn/youthlql@1.0.6/spring-sourcecode-v1/chapter_03/image-20210930110158555.png" />
|
||||
<img src="https://npm.elemecdn.com/youthlql@1.0.6/spring-sourcecode-v1/chapter_03/image-20210930110158555.png" />
|
||||
|
||||
|
||||
|
||||
@@ -1039,7 +1039,7 @@ protected void registerBeanPostProcessors(ConfigurableListableBeanFactory beanFa
|
||||
|
||||
#### Debug调用栈
|
||||
|
||||
<img src="https://upyunimg.imlql.cn/youthlql@1.0.6/spring-sourcecode-v1/chapter_03/image-20210930110913527.png" />
|
||||
<img src="https://npm.elemecdn.com/youthlql@1.0.6/spring-sourcecode-v1/chapter_03/image-20210930110913527.png" />
|
||||
|
||||
|
||||
|
||||
@@ -1061,7 +1061,7 @@ protected void registerBeanPostProcessors(ConfigurableListableBeanFactory beanFa
|
||||
|
||||
#### Debug调用栈
|
||||
|
||||
<img src="https://upyunimg.imlql.cn/youthlql@1.0.6/spring-sourcecode-v1/chapter_03/image-20210930112247246.png"/>
|
||||
<img src="https://npm.elemecdn.com/youthlql@1.0.6/spring-sourcecode-v1/chapter_03/image-20210930112247246.png"/>
|
||||
|
||||
#### AbstractAutowireCapableBeanFactory#populateBean()属性赋值
|
||||
|
||||
@@ -1141,7 +1141,7 @@ protected void registerBeanPostProcessors(ConfigurableListableBeanFactory beanFa
|
||||
}
|
||||
```
|
||||
|
||||
<img src="https://upyunimg.imlql.cn/youthlql@1.0.6/spring-sourcecode-v1/chapter_03/image-20210930112621989.png"/>
|
||||
<img src="https://npm.elemecdn.com/youthlql@1.0.6/spring-sourcecode-v1/chapter_03/image-20210930112621989.png"/>
|
||||
|
||||
|
||||
|
||||
@@ -1193,7 +1193,7 @@ public void setValue(@Nullable Object value) throws Exception { //name setName
|
||||
|
||||
#### Debug调用栈
|
||||
|
||||
<img src="https://upyunimg.imlql.cn/youthlql@1.0.6/spring-sourcecode-v1/chapter_03/image-20210930113459713.png"/>
|
||||
<img src="https://npm.elemecdn.com/youthlql@1.0.6/spring-sourcecode-v1/chapter_03/image-20210930113459713.png"/>
|
||||
|
||||
|
||||
|
||||
@@ -1201,7 +1201,7 @@ public void setValue(@Nullable Object value) throws Exception { //name setName
|
||||
|
||||
#### AutowiredAnnotationBeanPostProcessor#postProcessProperties()
|
||||
|
||||
<img src="https://upyunimg.imlql.cn/youthlql@1.0.6/spring-sourcecode-v1/chapter_03/image-20210930114234547.png" />
|
||||
<img src="https://npm.elemecdn.com/youthlql@1.0.6/spring-sourcecode-v1/chapter_03/image-20210930114234547.png" />
|
||||
|
||||
```java
|
||||
public PropertyValues postProcessProperties(PropertyValues pvs, Object bean, String beanName) {
|
||||
@@ -1322,7 +1322,7 @@ public PropertyValues postProcessProperties(PropertyValues pvs, Object bean, Str
|
||||
|
||||
#### Debug调用栈
|
||||
|
||||
<img src="https://upyunimg.imlql.cn/youthlql@1.0.6/spring-sourcecode-v1/chapter_03/image-20210930114612277.png"/>
|
||||
<img src="https://npm.elemecdn.com/youthlql@1.0.6/spring-sourcecode-v1/chapter_03/image-20210930114612277.png"/>
|
||||
|
||||
这也说明了,@Autowire,@Value赋值的时候会去找setXXX,这也是@Autowire的原理
|
||||
|
||||
@@ -1350,7 +1350,7 @@ public PropertyValues postProcessProperties(PropertyValues pvs, Object bean, Str
|
||||
|
||||
#### Debug调用栈
|
||||
|
||||
<img src="https://upyunimg.imlql.cn/youthlql@1.0.6/spring-sourcecode-v1/chapter_03/image-20210930143504497.png"/>
|
||||
<img src="https://npm.elemecdn.com/youthlql@1.0.6/spring-sourcecode-v1/chapter_03/image-20210930143504497.png"/>
|
||||
|
||||
|
||||
|
||||
@@ -1461,7 +1461,7 @@ public Object postProcessBeforeInitialization(Object bean, String beanName) thro
|
||||
|
||||
#### Debug调用栈
|
||||
|
||||
<img src="https://upyunimg.imlql.cn/youthlql@1.0.6/spring-sourcecode-v1/chapter_03/image-20210930150311019.png"/>
|
||||
<img src="https://npm.elemecdn.com/youthlql@1.0.6/spring-sourcecode-v1/chapter_03/image-20210930150311019.png"/>
|
||||
|
||||
|
||||
|
||||
@@ -1513,7 +1513,7 @@ public Object postProcessBeforeInitialization(Object bean, String beanName) thro
|
||||
|
||||
#### Debug调用栈
|
||||
|
||||
<img src="https://upyunimg.imlql.cn/youthlql@1.0.6/spring-sourcecode-v1/chapter_03/image-20210930150604716.png"/>
|
||||
<img src="https://npm.elemecdn.com/youthlql@1.0.6/spring-sourcecode-v1/chapter_03/image-20210930150604716.png"/>
|
||||
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user