Spring Boot 中的 xxxxAutoConfiguration 类会自动加载到哪里呢?
以 EnableAutoConfiguration
下的 GsonAutoConfiguration
为例吧。
该图是在 spring.factories 文件中, 是底层自动配置的文件, 其中 EnableAutoConfiguration
包含 GsonAutoConfiguration
, 那这个 GsonAutoConfiguration
会在 SpringBoot 项目启动时就加载是加载到哪里呢?
不满足条件所以未被加载到 IOC 容器中,那它是以一种什么的形式加载到什么地方呢?以致于满足 @Conditional
条件时能立马被加载到 IOC 容器呢?
希望得到帮助...
感谢您!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
感谢评论区的 @21qje4w3
如果对这个问题还有疑惑的XD,可以参考该篇文章:https://zhuanlan.zhihu.com/p/...
总结:
Spring IOC 容器初始化你和销毁 Bean 的过程,就是 Bean 的生命周期,大致分为 Bean 的定义、Bean 的初始化、Bean 的生存期和 Bean 的销毁四个部分。
Spring Bean 初始化流程:
前三步属于 Bean 的定义,只是完成了一个资源的定位,并将 Bean 的定义发布到 IoC 容器中,但是还没有完成 Bean 的实例化,更没有完成注入。默认情况下,Spring 会继续完成实例化和依赖注入。但是有些 Bean 会受到变化因素的影响,希望在取出 Bean 的时候才完成初始化和注入,也就是先完成 Bean 的定义并发布到容器中,但是不做实例化和依赖注入,当取出的时候才进行实例化和依赖注入。这可以通过 @ComponentScan 中对配置项 lazyInit 的设置,进行延迟初始化,默认情况下,为 false,即不进行延迟初始化。