springboot容器

1.主要指的是servlet容器
servlet组件由sevlet Filter Listener等

2.自动配置原理
通过ServletWebServerFactoryAutoConfiguration 配置这些内容
(自动配置类开始分析功能)

@conditionalOnclass开启条件 ServletRequest类
@import导入嵌入式的tomcat Jetty等 这些是配置类(但是都有条件注解,也就是导入了包才生效,
由web服务器工厂这个类getWebServer方法去实现(new了对象等等),可以看到是ioc容器(ServletWebServerApplicationContext)中的createWebServer方法调用了 在往上层走是onRefresh()->spring容器刷新(启动)的时候,会预留时间调用该方法,实际是(刷新的子容器)子容器即webserverApplicationContext调用的该方法 而refresh()容器的刷新 有十二大步 会调onRefresh())

总结:
web场景spring容器去onRefresh去创建web服务器,下层会更据包条件注解配置相关类型服务器(tomcat jetty),所以项目一启动,就会创建出tomcat等

用法:
修改server下的相关配置去修改复服务器配置
通过给容器中放入ServletWebServerFactory禁用工厂 自己去创建一个自定义工厂 达到自己创建服务器的效果 (切换服务器) starter-web 自带了tomcat 可以exclusion掉 然后新加其他服务器依赖
springboot容器_第1张图片

@EnableConfigurationProperties({ServerProperties.class}) 属性绑定到这个类(服务器相关配置)
到这个类下,可以看到:
springboot容器_第2张图片
所以配置是以server开头

点进@import导入的类
@ConditionalOnMissingBean(
value = {ServletWebServerFactory.class},
search = SearchStrategy.CURRENT
)
说明没有这些bean的时候才会创建

你可能感兴趣的:(spring,boot,后端,java)