springboot tomcat自动配置原理

EmbeddedWebServerFactoryCustomizerAutoConfiguration

参考SpringBoot——嵌入式Servlet容器自动配置原理

image

我们在项目栏->External Libraries->...autoconfigure里找到spring.factories

其中提到了EmbeddedWebServerFactoryCustomizerAutoConfiguration

该类中有三个方法:xxxCustomizerConfiguration,这三个方法中都有一个注解@ConditionalOnClass,该注解中标明在引入哪些依赖时就会使相应的XxxCustomizerConfiguration生效,这也是通过修改依赖就可将Servlet容器切换为Tomcat、Jetty和Undertow的原因.

ServletWebServerFactoryAutoConfiguration

参考SpringBoot嵌入式Tomcat的自动配置原理

在刚才的spring.factories里同样有ServletWebServerFactoryAutoConfiguration

...
@EnableConfigurationProperties(ServerProperties.class)
public class ServletWebServerFactoryAutoConfiguration {
...
}

@EnableConfigurationProperties开启ServerProperties类的属性值配置。而这个类里面包含的就是Web服务的配置

@ConfigurationProperties(prefix = "server", ignoreUnknownFields = true)
public class ServerProperties {

    /**
     * Server HTTP port.
     */
    private Integer port;

    /**
     * Network address to which the server should bind.
     */
    private InetAddress address;
...

后者会从application.properties读取配置。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

扫码关注云+社区

领取腾讯云代金券