准备工作
JDK 8U152
windows及linux版本下载地址:链接 下载后安装
ALPN alpn-boot-8.1.11.v20170118.jar
项目配置
pom.xml依赖配置
<!--springboot排除tomcat依赖--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId><exclusions><exclusion><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-tomcat</artifactId></exclusion></exclusions></dependency><!--引入undertow--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-undertow</artifactId></dependency>
application.yml
server:port: 8880http:port: 80undertow:url-charset: utf-8http2:enabled: true
配置类
/**
* http服务端口
*/
@Value("${server.http.port}")
private Integer httpPort;
@Value("${server.http2.enabled}")
public boolean http2State;
/**
* https服务端口
*/
@Value("${server.port}")
private Integer httpsPort;
@Value("${server.http.exchange-to-https:true}")
private Boolean httpExchangeHttps;
@Bean
public ServletWebServerFactory undertowFactory() {
UndertowServletWebServerFactory undertowFactory = new UndertowServletWebServerFactory();
undertowFactory.addBuilderCustomizers((Undertow.Builder builder) -> {
builder.addHttpListener(httpPort, "0.0.0.0")
.setServerOption(UndertowOptions.ENABLE_HTTP2, http2State)
.setServerOption(UndertowOptions.HTTP2_SETTINGS_ENABLE_PUSH, true);
});
if(httpExchangeHttps){
undertowFactory.addDeploymentInfoCustomizers(deploymentInfo -> {
// 开启HTTP自动跳转至HTTPS
deploymentInfo.addSecurityConstraint(new SecurityConstraint()
.addWebResourceCollection(new WebResourceCollection().addUrlPattern("/*"))
.setTransportGuaranteeType(TransportGuaranteeType.CONFIDENTIAL)
.setEmptyRoleSemantic(SecurityInfo.EmptyRoleSemantic.PERMIT))
.setConfidentialPortManager(exchange -> httpsPort);
});
}else{
log.warn("http转https已经被关闭,当前允许从http访问");
}
return undertowFactory;
}
启动服务
java版本确认
# 确认java版本为152版本
java -version
启动java服务
java -Xbootclasspath/p:ALPN的jar包路径 -jar app.jar
idea开发相关配置
1. 变更系统环境变量中JAVA_HOME的目标路径为152版本
2. idea版本变更
将项目sdk切换为152版本
将模块下所有模块依次变更为152版本
打开setting,将maven的jdk设定为152版本
服务配置变更,点击edit configurations菜单
在vm options输入框中,输入
-Xbootclasspath/p:ALPN的jar包路径


