SpringBoot从浅至深
-
搭建springboot环境,非常的简单!不需要如何的配置文件,只需要一个引导类,run起来就完事了!
-
@SpringBootApplication注解
-
引导类里面只有一个注解 @SpringBootApplication注解 ,从里面看有3个注解比较重要
-
@SpringBootConfiguration注解
- 从源码看其等同@Configuration,即标注该类是Spring的一个配置类
-
@ComponentScan注解
- 学习spring过后,这个就很简单了。就是注解扫描
- 扫描当前类下的package, @Controller/@Service/@Component/@Repository 等注解
-
@EnableAutoConfiguration注解
- @AutoConfigurationPackage注解: 自动配置包
- 里面还是依靠的 @Import注解 ,注解扫描的工作。
- @Import注解: 给IOC容器导入组件
- FACTORIES_RESOURCE_LOCATION的值是 META-INF/spring.factories
- Spring启动的时候会扫描所有jar路径下的 META-INF/spring.factories ,将其文件包装成Properties对象
- 从Properties对象获取到key值为 EnableAutoConfiguration 的数据,然后添加到容器里边。
总结
@SpringBootApplication 等同于下面三个注解:
- @SpringBootConfiguration
- @EnableAutoConfiguration
- @ComponentScan 这3个注解,其中@EnableAutoConfiguration是关键注解,作用是启动自动配置。内部实际使用 @Import注解 ,加载 META-INF/spring.factories 文件的信息,然后筛选出以 EnableAutoConfiguration 为key的数据,加载到IOC容器中,实现自动配置功能!
原文
https://juejin.im/post/5cfdbe6c6fb9a07ece67c3dc