如果你需要同时支持HTTP和HTTPS这两个协议,就需要把另外一个协议用程序化的方式来配置。
因为通过程序的方式配置HTTP协议更加简单一点,所以,Spring Boot 推荐的做法是把HTTPS 配置在配置文件,具体的配置可以看我的文章《SpringBoot配置Https》
下面示例就是通过程序的方式来额外支持HTTP协议。
@SpringBootApplication
public class JavastackApplication {
@Bean
public ServletwebServerFactory servletContainer(){
TomcatServletwebServerFactory tomcat = new TomcatServletwebServerFactory();
tomcat.addAdditionalTomcatConnectors(createStandardConnector());
return tomcat;
}
private Connector createStandardConnector() {
connector connector = new Connector( "org.apache.coyote.http11.Http11NioProtocol");
connector.setPort(8080);
return connector;
}
public static void main(String[] args) {
SpringApplication.run(JavastackApplication.class, args);
}
}
配置好之后启动项目就会看到下面的同时支持两个协议的日志:
Tomcat started on port(s): 8443 (https) 8080 (http)