SpringBoot从1.5.3升级到2.1.6有不少问题,比较典型的一个是WebServer的个性化设置问题。在1.5.3中可以直接通过实行EmbeddedServletContainerCustomizer就可以方便设置。
@ComponentScan(basePackages ={"******"})
@SpringBootApplication(exclude={DataSourceAutoConfiguration.class,HibernateJpaAutoConfiguration.class})
@ImportResource(locations = {"classpath*:conf/common-rocketmq.xml"})
public class AppLauncher implements EmbeddedServletContainerCustomizer {
public static void main(String[] args) {
SpringApplication.run(AppLauncher.class, args);
}
/**
* 设置服务端口
*/
@Override
public void customize(ConfigurableEmbeddedServletContainer cesc) {
cesc.setPort(8898);
}
}
SpringBoot升级到2.0系列后不在支持EmbeddedServletContainerCustomizer。WebServerFactoryCustomizer也就是一种定制器类:需要通过新建自定义的WebServerFactoryCustomizer类来实现属性配置修改。
@ComponentScan(basePackages ={"*****"})
@SpringBootApplication(exclude={DataSourceAutoConfiguration.class,HibernateJpaAutoConfiguration.class})
@ImportResource(locations = {"classpath*:conf/common-rocketmq.xml"})
public class AppLauncher {
public static void main(String[] args) {
SpringApplication.run(AppLauncher.class, args);
}
/**
* 设置服务端口
*/
@SuppressWarnings("rawtypes")
@Bean
public WebServerFactoryCustomizer webServerFactoryCustomizer(){
return new WebServerFactoryCustomizer<ConfigurableServletWebServerFactory>() {
@Override
public void customize(ConfigurableServletWebServerFactory factory) {
factory.setPort(8896);
}
};
}
}