各位老哥,能解释一下这俩自动配置类有啥区别?
- EmbeddedWebServerFactoryCustomizerAutoConfiguration
- ServletWebServerFactoryAutoConfiguration
看视频学习嵌入式servlet的自动配置原理,视频里按2讲解自动配置,但是我百度搜嵌入式servlet的自动配置原理都是按1讲解的。
各位老哥,能解释一下这俩自动配置类有啥区别?
看视频学习嵌入式servlet的自动配置原理,视频里按2讲解自动配置,但是我百度搜嵌入式servlet的自动配置原理都是按1讲解的。
1.https://www.cnblogs.com/zhixiang-org-cn/p/11638485.html
2.基于此模型概念,在一个Servlet Web应用中,Spring Boot会使用上表中所说的WebServer工厂组件生成相应的WebServer实例。而这里的WebServer工厂组件又是从哪里来的呢 ? 这就是自动配置类ServletWebServerFactoryAutoConfiguration的任务。
自动配置类ServletWebServerFactoryAutoConfiguration首先通过注解声明自己的生效条件:
类 ServletRequest 存在于 classpath 上时才生效,也就是要求javax.servlet-api包必须被引用;
当前应用必须是Spring MVC应用才生效;
在以上条件被满足时,ServletWebServerFactoryAutoConfiguration引入了如下三个配置类 :
EmbeddedTomcat
EmbeddedJetty
EmbeddedUndertow
这三个配置类是ServletWebServerFactoryConfiguration的嵌套配置类,它们会分别检测classpath上存在的类,从而判断当前应用使用的是Tomcat/Jetty/Undertow中的哪一个Servlet Web服务器,从而决定定义相应的工厂组件bean : TomcatServletWebServerFactory/JettyServletWebServerFactory/UndertowServletWebServerFactory。