SpringBoot自动配置

SpringBoot可以快速上手,不需要了解太多配置概念,也不需要大量XML配置,通过使用SpringBoot的版本管理可以避免包依赖的混乱,SpringBoot官方已经对包的相互依赖做了大量的测试,保证不会出现异常,并且SpringBoot内置了tomcat,部署时可以直接通过Java命令运行应用,我们来说下SpringBoot自动配置的原理
1:在启动类有一个@SpringBootApplication注解想必大家都知道,上图
SpringBoot自动配置
就是这张图,在@SpringBootApplication注解下有七个注解,其中有三个是对我们来说是比较重要的,其中@EnableAutoConfiguration注解是,自动配置的关键,上图
SpringBoot自动配置
@EnableAutoConfiguration注解通过@Import注解,以ImportSelector接口的方法来导入classpath下的META-INF/spring.factories文件,这些文件中会指定需要加载的一些类名称,上图
SpringBoot自动配置
那么在哪里可以找到META-INF/sping.factories文件,小伙伴们可以在运行类中一路run下去,在SpringFactoriesLoader下,也可以之间打开,过程不重要。上图
SpringBoot自动配置
我们到这个类下来翻翻左面的源码,上图
SpringBoot自动配置
看到了吗,这个文件下都SpingBoot帮我们配置好的默认配置
下面我们我们随便打开一个配置看看里面是什么样的,就打开webmvc吧,看图
SpringBoot自动配置
点来之后看到了吗,这就是原理,只要满足@ConditionalOnClass中的条件,就会触发SpringBoot自动配置了,怎么满足条件呢,这大家都知道了吧,导入mvc的相关依赖就完事。
感谢大家阅读,不懂可以私信我哦,给个关注谢谢。