实际项目中可能需要同时支持http和https两种协议模式,这里只介绍springboot2.0及以上版本的实现方式。
springboot2.0以后取消了EmbeddedServletContainerFactory的方式,开放了ServletWebServerFactory接口,代码如下:
1、在properties文件中增加如下配置:
http.port = 80
server.port=443
server.ssl.key-store=keystore.p12
server.ssl.key-store-password=111111
server.ssl.keyStoreType=PKCS12
2、在SpringBootApplication中增加代码:
@Value("${http.port}")
private Integerport;@Bean
public ServletWebServerFactoryservletContainer() {
TomcatServletWebServerFactory tomcatServletWebServerFactory =new TomcatServletWebServerFactory();
Connector connector =new Connector("org.apache.coyote.http11.Http11NioProtocol");
connector.setPort(port); tomcatServletWebServerFactory.addAdditionalTomcatConnectors(connector); return tomcatServletWebServerFactory;
}
在启动后,可以看到80与443两个端口,都已启动。
网友评论