闲情居|Spring Boot源码解析——Spring Boot系列
一、自动装配原理
之前博文已经讲过 , @SpringBootApplication继承了@EnableAutoConfiguration , 该注解导入了AutoConfigurationImport Selector , 这个类主要是扫描spring-boot-autoconfigure下面的META-INF\spring.factories中的EnableAutoConfiguration对应的全类名 , 其中XXXAutoConfiguration都是一个个自动配置类 。
自动装配原理具体参考:Spring Boot系列(二):Spring Boot自动装配原理解析
二、Spring Boot的jar启动1、Spring Boot自动装配Tomcat组件① EmbeddedWebServerFactoryCustomizerAutoConfiguration内嵌的Web容器工厂定制器自动装配类 , 装配了TomcatWebServerFactoryCustomizer组件
Tomcat工厂定制器TomcatWebServerFactoryCustomizer用来设置容器的属性 , 把ServerProperties中的属性设置到Tomcat容器的工厂中 。
ServerProperties服务的属性类:
② ServletWebServerFactoryAutoConfiguration , ServletWeb工厂自动装配类 , 装配了如下四个组件
- ServletWebServerFactoryCustomizer:用来定制ServletWeb服务工厂
- TomcatServletWebServerFactoryCustomizer:用来定制TomcatServletWeb服务工厂
- ServletWebServerFactoryAutoConfiguration.BeanPostProcessorsRegistrar :后置处理器
- ServletWebServerFactoryConfiguration:用来配置TomcatServletWeb服务工厂
public SpringApplication(ResourceLoader resourceLoader, Class>... primarySources) {this.resourceLoader = resourceLoader;Assert.notNull(primarySources, "PrimarySources must not be null");//设置主配置类 我们自己写的Spring Boot的启动类this.primarySources = new LinkedHashSet<>(Arrays.asList(primarySources));//设置web应用的类型this.webApplicationType = WebApplicationType.deduceFromClasspath();//设置容器初始化器(ApplicationContextInitializer类型的)setInitializers((Collection) getSpringFactoriesInstances(ApplicationContextInitializer.class));//把监听器设置到SpringApplication中[ApplicationListener]setListeners((Collection) getSpringFactoriesInstances(ApplicationListener.class));//设置主配置类this.mainApplicationClass = deduceMainApplicationClass();}
推荐阅读
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 闲情居|华为云手机发布,真正的5G手机,绕过光刻机的技术壁垒
- 笑看尘世|Spring4基础二二-AOP篇-通知(2)-通知详解
- 闲情居|这个毫无存在感的手机品牌,做了一款可能是今年最奇葩的手机
- 一味宠爱|Springboot整合K8s读取ConfigMap刷新配置
- 闲情居|准备弯道超车?华为放出大招!未来光刻机或将变成废铁?
- 小熊科技|从零学ELK系列(十):SpringBoot接入ELK升级版
- 三好先森|基于JeecgBoot快速开发简历库系统,开源项目,实操分享
- 闲情居|CD机黄金年代的传奇 把玩Revox瑞华士B226 CD机
- 闲情居|突发 | 特斯拉最新事故造成人员伤亡,官方:车辆没有发生故障
- 澄澈的眼|这Spring注入对象处理过程也太细了,收藏了,什么神仙
