栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

SpringBoot自动配置分析

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

SpringBoot自动配置分析

SpringBoot主要精髓就是约定大于配置

SpringBoot启动类中有一个@SpringBootApplication。

这个注解是个复合注解,@SpringBootConfiguration其实是个就是表明这个类是个配置类而已,@EnableAutoConfiguration从名字就可以看出来,就是这个类开启自动配置的。嗯,自动配置的奥秘全都在这个注解里面。

@AutoConfigurationPackage 。
里面有一个Registrar.class bean 。

在这个地方打个断点运行springboot,可以看出来String【】里面存储的就是springboot启动类层级的包名以及其子类bean,这个可以看出为什么包要定义在springboot启动类同级。
回到EnableAutoConfiguration这个注解下面来看

import导入一个AutoConfigurationimportSelector 叫自动配置导入选择器,主要就是为当前多个配置类导入多个自动配置类。



这是一个整个寻找配置类流程,loadspringFactories类中找spring.factories的所有项目与现有的classLoader做一个匹配返回相对应的配置类进行配置。

探究一波spring.factories

将类路径下 meta-INF/spring.factories 里面配@Configuration:标记为配置类。

@ConditionalOnWebApplication:web应用下才生效。
@ConditionalOnClass:指定的类(依赖)存在才生效。
@ConditionalOnProperty:主配置文件中存在指定的属性才生效。
@EnableConfigurationProperties({HttpProperties.class}):启动指定类的ConfigurationProperties功能;将配置文件中对应的值和 HttpProperties 绑定起来;并把 HttpProperties 加入到 IOC 容器中。置的所有 EnableAutoConfiguration 的值加入到 Spring 容器中。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/287703.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号