精要:
-
自动配置:针对很多Spring应用程序常见的应用功能,Spring Boot能自动提供相关配置。
-
起步依赖:告诉Spring Boot需要什么功能,它就能引入需要的库。
-
命令行界面:这是Spring Boot的可选特性,借此你只需写代码就能完成完整的应用程序, 无需传统项目构建。
-
Actuator:提供在运行时检视应用程序内部情况的能力:
-
Spring应用程序上下文里配置的Bean
-
Spring Boot的自动配置做的决策
-
应用程序取到的环境变量、系统属性、配置属性和命令行参数
-
应用程序里线程的当前状态
-
应用程序最近处理过的HTTP请求的追踪情况
-
各种和内存用量、垃圾回收、Web请求以及数据源用量相关的指标
-
从本质上来说,Spring Boot就是Spring,它做了那些没有它你自己也会去做的Spring Bean配置。
springboot自动配置
@SpringBootApplication开启了Spring的组件扫描和Spring Boot的自动配置功能,@SpringBootApplication将三个有用的注解组合在了一起。
1.Spring的@Configuration:标明该类使用Spring基于Java的配置。
2.Spring的@ComponentScan:启用组件扫描,这样你写的Web控制器类和其他组件才能被 自动发现并注册为Spring应用程序上下文里的Bean。
3.Spring Boot 的 @EnableAutoConfiguration :这个不起眼的小注解也可以称为 @Abracadabra,就是这一行配置开启了Spring Boot自动配置
1.@AutoConfigurationPackage:自动配置包。@Import({Registrar.class}):包的注册器
2.@Import({AutoConfigurationImportSelector.class}):自动导入包的核心
SpringFactoriesLoader.loadFactoryNames(this.getSpringFactoriesLoaderFactoryClass(), this.getBeanClassLoader());
SpringFactoriesLoader的静态方法
loadFactoryNames
loadSpringFactories
classLoader.getResources(FACTORIES_RESOURCE_LOCATION);
META-INF/spring.factories
最终在META-INF/spring.factories,进行自动配置。
@Conditional