起步依赖的原理
起步依赖的原理就是Maven的 依赖传递:
只要引入springboot的一个起步依赖,那其他的依赖呢 就会自动的通过maven的依赖传递,传递进来
自动配置的原理
方案1:
代码测试:
方案2:![](https://img-blog.csdnimg.cn/direct/6bb25b516eae420e819720011cd46092.png)
前三种代码测试:
第四种代码测试:
@SpringBootApplication源码跟踪:
源码跟踪的技巧:
大家在以后的工作中或者学习中可能会遇到很多的框架,然后想去看下框架的源码,那在跟踪框架的源码的时候呢,大家一定抓住关键点,找到核心流程,一定不要从头到尾一行代码一行代码去看,一个方法一个方法去研究,一定要找到关键流程抓住关键点,先在宏观上对整个流程或者说整个原理有个认识,然后有精力的话再去研究其中个细节。
@SpringBootConfiguration 、@EnableAutoConfiguration 、@ComponentScan
第一个注解:@SpringBootConfiguration
主要是声明当前类也是个配置类
@SpringBootConfiguration 注解里面有两个注解:@Configuration 声明配置类
@Indexed 加速应用启动的(这个不用关心)
第二个注解:@ComponentScan
就是组件扫描的注解
第三个注解:@EnableAutoConfiguration
就是SpringBoot实现自动化配置的核心注解
一般@Enable开头这类的注解它底层封装的就是@Import注解,通过@Import来导入指定的bean或者配置类
看下AutoConfigurationEntry对象的getAutoConfigurationEntry方法封装了什么数据
然后看下AutoConfigurationEntry封装了什么信息
看下List下封装的两个文件
找到
META-INF/spring.factories
META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports
这两个文件
总结:
关于 @Conditional 这类的注解
代码测试1:
测试2:
测试3: