Spring Boot 中的 xxxxAutoConfiguration 类会自动加载到哪里呢?

_Octocat
  • 54

EnableAutoConfiguration 下的 GsonAutoConfiguration 为例吧。

该图是在 spring.factories 文件中, 是底层自动配置的文件, 其中 EnableAutoConfiguration 包含 GsonAutoConfiguration, 那这个 GsonAutoConfiguration 会在 SpringBoot 项目启动时就加载是加载到哪里呢?

image.png


不满足条件所以未被加载到 IOC 容器中,那它是以一种什么的形式加载到什么地方呢?以致于满足 @Conditional 条件时能立马被加载到 IOC 容器呢?

image.png

希望得到帮助...
感谢您!

回复
阅读 265
1 个回答

感谢评论区的 @21qje4w3

如果对这个问题还有疑惑的XD,可以参考该篇文章:https://zhuanlan.zhihu.com/p/...

总结

Spring IOC 容器初始化你和销毁 Bean 的过程,就是 Bean 的生命周期,大致分为 Bean 的定义、Bean 的初始化、Bean 的生存期和 Bean 的销毁四个部分。

image.png

Spring Bean 初始化流程

前三步属于 Bean 的定义,只是完成了一个资源的定位,并将 Bean 的定义发布到 IoC 容器中,但是还没有完成 Bean 的实例化,更没有完成注入。默认情况下,Spring 会继续完成实例化和依赖注入。但是有些 Bean 会受到变化因素的影响,希望在取出 Bean 的时候才完成初始化和注入,也就是先完成 Bean 的定义并发布到容器中,但是不做实例化和依赖注入,当取出的时候才进行实例化和依赖注入。这可以通过 @ComponentScan 中对配置项 lazyInit 的设置,进行延迟初始化,默认情况下,为 false,即不进行延迟初始化。

你知道吗?

宣传栏