SpringBoot 2.0+ WebServerFactoryCustomizer修改默认servlet容器
springBoot 2.0+ WebServerFactoryCustomizer
可以通过这种方式来去修改我们的默认 servlet 容器的配置
1、不同版本间的差异
//SpringBoot1.5.x
@Bean
public EmbeddedServletContainerCustomizer embeddedServletContainerCustomizer(){
return new EmbeddedServletContainerCustomizer() {
@Override
public void customize(ConfigurableEmbeddedServletContainer container) {
container.setPort(8090);
}
};
}
//SpringBoot2.x.x
@Bean
public WebServerFactoryCustomizer webServerFactoryCustomizer(){
return new WebServerFactoryCustomizer<ConfigurableServletWebServerFactory>() {
@Override
public void customize(ConfigurableServletWebServerFactory factory) {
factory.setPort(8090);
}
};
2、底层原理
随便进入一个我们常见的 servlet的相关配置中可以发现,里面有我们的配置文件,还将值对应到其配置文件中了。这不跟我们配置文件的底层写法一样么,只不过换了种方式。
3. 总结
首先其通过不同的 xxxCustomizer 来区分原配置类 ServerProperties 中的各种属性(原来通过对象的形式)。然后这些 xxxCustomizer 调用 xxxWebServerFactory 的相应方法来去注入到配置类中,从而修改我们的默认配置。
