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

发布于 2022-09-13 01:23:39 字数 556 浏览 17 评论 0

EnableAutoConfiguration 下的 GsonAutoConfiguration 为例吧。

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

image.png


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

image.png

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

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

[浮城] 2022-09-20 01:23:39

感谢评论区的 @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,即不进行延迟初始化。

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文