当前位置: 代码网 > it编程>编程语言>Java > SpringBoot Web工程同时启动多个HTTP端口的方法

SpringBoot Web工程同时启动多个HTTP端口的方法

2026年04月12日 Java 我要评论
一、简要概述我们在开发springboot web工程中,一般通过在application.yml配置文件中使用server.port来指定唯一的http启动端口,那么springboot web工程

一、简要概述

我们在开发springboot web工程中,一般通过在application.yml配置文件中使用server.port来指定唯一的http启动端口,那么springboot web工程支不支持指定多个http端口启动呢,答案是肯定的!

二、tomcat应用服务器

默认情况下,boot内置应用服务器为spring-boot-starter-tomcat

1,定义启动端口

为了跟系统配置server.port做区分,我们定义路径为server.http.ports,典型配置如下:

server:
  port: 8082
  servlet:
    context-path: /
    session:
      timeout: 1800
  http:
    ports: 80,8085

2,编写tomcathttp配置类

import java.util.arrays;
import java.util.stream.collectors;

import org.apache.catalina.connector.connector;
import org.springframework.beans.factory.annotation.value;
import org.springframework.boot.web.embedded.tomcat.tomcatservletwebserverfactory;
import org.springframework.boot.web.servlet.server.servletwebserverfactory;
import org.springframework.context.annotation.bean;
import org.springframework.context.annotation.configuration;

@configuration
public class tomcathttpconfig
{
    @value("${server.http.ports:}")
    int[] httpports;
    
    /**
     * 添加额外的http连接器
     */
    @bean
    public servletwebserverfactory servletcontainer()
    {
        tomcatservletwebserverfactory factory = new tomcatservletwebserverfactory();
        factory.addadditionaltomcatconnectors(httpconnectors());
        return factory;
    }
    
    private connector[] httpconnectors()
    {
        return arrays.stream(httpports).maptoobj(p -> {
            connector connector = new connector("http/1.1");
            connector.setscheme("http");
            connector.setport(p);
            connector.setsecure(false);
            connector.setredirectport(443); // 关键配置:当请求需要安全连接时,重定向到 https 端口
            return connector;
        }).collect(collectors.tolist()).toarray(new connector[0]);
    }
}

3,运行结果

查看日志,可以看到我们成功在 8082 (http) 80 (http) 8085 (http)启动了应用。

_ _
 /\\ / ___'_ __ _ _(_)_ __  __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
 \\/  ___)| |_)| | | | | || (_| |  ) ) ) )
  '  |____| .__|_| |_|_| |_\__, | / / / /
 =========|_|==============|___/=/_/_/_/
[32m :: spring boot :: [39m      [2m (v2.2.4.release)[0;39m
[2m2026-04-08 17:40:51.014[0;39m [32m info[0;39m [35m5024[0;39m [2m---[0;39m [2m[  restartedmain][0;39m [36mc.f.httpbootapplication                 [0;39m [2m:[0;39m the following profiles are active: dev
[2m2026-04-08 17:40:51.958[0;39m [32m info[0;39m [35m5024[0;39m [2m---[0;39m [2m[  restartedmain][0;39m [36mo.s.c.c.s.genericscope                  [0;39m [2m:[0;39m beanfactory id=baa29068-0ad7-369f-9820-35c38d0277df
[2m2026-04-08 17:40:52.942[0;39m [32m info[0;39m [35m5024[0;39m [2m---[0;39m [2m[  restartedmain][0;39m [36mo.s.b.w.e.t.tomcatwebserver             [0;39m [2m:[0;39m tomcat initialized with port(s): 8082 (http) 80 (http) 8085 (http)
[2m2026-04-08 17:40:52.954[0;39m [32m info[0;39m [35m5024[0;39m [2m---[0;39m [2m[  restartedmain][0;39m [36mo.a.c.h.http11nioprotocol               [0;39m [2m:[0;39m initializing protocolhandler ["http-nio-8082"]
[2m2026-04-08 17:40:52.955[0;39m [32m info[0;39m [35m5024[0;39m [2m---[0;39m [2m[  restartedmain][0;39m [36mo.a.c.h.http11nioprotocol               [0;39m [2m:[0;39m initializing protocolhandler ["http-nio-80"]
[2m2026-04-08 17:40:52.966[0;39m [32m info[0;39m [35m5024[0;39m [2m---[0;39m [2m[  restartedmain][0;39m [36mo.a.c.h.http11nioprotocol               [0;39m [2m:[0;39m initializing protocolhandler ["http-nio-8085"]
[2m2026-04-08 17:40:52.967[0;39m [32m info[0;39m [35m5024[0;39m [2m---[0;39m [2m[  restartedmain][0;39m [36mo.a.c.c.standardservice                 [0;39m [2m:[0;39m starting service [tomcat]
[2m2026-04-08 17:40:52.968[0;39m [32m info[0;39m [35m5024[0;39m [2m---[0;39m [2m[  restartedmain][0;39m [36mo.a.c.c.standardengine                  [0;39m [2m:[0;39m starting servlet engine: [apache tomcat/9.0.30]
[2m2026-04-08 17:40:53.072[0;39m [32m info[0;39m [35m5024[0;39m [2m---[0;39m [2m[  restartedmain][0;39m [36mo.a.c.c.c.[.[.[/]                       [0;39m [2m:[0;39m initializing spring embedded webapplicationcontext
[2m2026-04-08 17:40:53.072[0;39m [32m info[0;39m [35m5024[0;39m [2m---[0;39m [2m[  restartedmain][0;39m [36mo.s.w.c.contextloader                   [0;39m [2m:[0;39m root webapplicationcontext: initialization completed in 2041 ms
[2m2026-04-08 17:40:53.150[0;39m [32m info[0;39m [35m5024[0;39m [2m---[0;39m [2m[  restartedmain][0;39m [36mc.f.c.u.springcontextutils              [0;39m [2m:[0;39m ###### execute setapplicationcontext ######
[2m2026-04-08 17:40:53.515[0;39m [32m info[0;39m [35m5024[0;39m [2m---[0;39m [2m[  restartedmain][0;39m [36mo.s.b.d.a.optionallivereloadserver      [0;39m [2m:[0;39m livereload server is running on port 35729
[2m2026-04-08 17:40:53.786[0;39m [32m info[0;39m [35m5024[0;39m [2m---[0;39m [2m[  restartedmain][0;39m [36mc.f.w.c.simplefilecontroller            [0;39m [2m:[0;39m #### istomcat: false
[2m2026-04-08 17:40:53.788[0;39m [32m info[0;39m [35m5024[0;39m [2m---[0;39m [2m[  restartedmain][0;39m [36mc.f.w.c.simplefilecontroller            [0;39m [2m:[0;39m #### isjetty: false
[2m2026-04-08 17:40:54.036[0;39m [32m info[0;39m [35m5024[0;39m [2m---[0;39m [2m[  restartedmain][0;39m [36mpertysourcedrequestmappinghandlermapping[0;39m [2m:[0;39m mapped url path [/v2/api-docs] onto method [springfox.documentation.swagger2.web.swagger2controllerwebmvc#getdocumentation(string, httpservletrequest)]
[2m2026-04-08 17:40:54.077[0;39m [33m warn[0;39m [35m5024[0;39m [2m---[0;39m [2m[  restartedmain][0;39m [36mo.s.c.n.a.archaiusautoconfiguration     [0;39m [2m:[0;39m no spring.application.name found, defaulting to 'application'
[2m2026-04-08 17:40:54.084[0;39m [33m warn[0;39m [35m5024[0;39m [2m---[0;39m [2m[  restartedmain][0;39m [36mc.n.c.s.urlconfigurationsource          [0;39m [2m:[0;39m no urls will be polled as dynamic configuration sources.
[2m2026-04-08 17:40:54.084[0;39m [32m info[0;39m [35m5024[0;39m [2m---[0;39m [2m[  restartedmain][0;39m [36mc.n.c.s.urlconfigurationsource          [0;39m [2m:[0;39m to enable urls as dynamic configuration sources, define system property archaius.configurationsource.additionalurls or make config.properties available on classpath.
[2m2026-04-08 17:40:54.090[0;39m [33m warn[0;39m [35m5024[0;39m [2m---[0;39m [2m[  restartedmain][0;39m [36mc.n.c.s.urlconfigurationsource          [0;39m [2m:[0;39m no urls will be polled as dynamic configuration sources.
[2m2026-04-08 17:40:54.091[0;39m [32m info[0;39m [35m5024[0;39m [2m---[0;39m [2m[  restartedmain][0;39m [36mc.n.c.s.urlconfigurationsource          [0;39m [2m:[0;39m to enable urls as dynamic configuration sources, define system property archaius.configurationsource.additionalurls or make config.properties available on classpath.
[2m2026-04-08 17:40:54.282[0;39m [32m info[0;39m [35m5024[0;39m [2m---[0;39m [2m[  restartedmain][0;39m [36mo.s.s.c.threadpooltaskexecutor          [0;39m [2m:[0;39m initializing executorservice 'applicationtaskexecutor'
[2m2026-04-08 17:40:54.327[0;39m [32m info[0;39m [35m5024[0;39m [2m---[0;39m [2m[  restartedmain][0;39m [36mo.s.b.a.w.s.welcomepagehandlermapping   [0;39m [2m:[0;39m adding welcome page: class path resource [static/index.html]
[2m2026-04-08 17:40:54.447[0;39m [32m info[0;39m [35m5024[0;39m [2m---[0;39m [2m[  restartedmain][0;39m [36mo.s.s.c.threadpooltaskscheduler         [0;39m [2m:[0;39m initializing executorservice 'taskscheduler'
[2m2026-04-08 17:40:54.740[0;39m [32m info[0;39m [35m5024[0;39m [2m---[0;39m [2m[  restartedmain][0;39m [36md.s.w.p.documentationpluginsbootstrapper[0;39m [2m:[0;39m documentation plugins bootstrapped
[2m2026-04-08 17:40:54.743[0;39m [32m info[0;39m [35m5024[0;39m [2m---[0;39m [2m[  restartedmain][0;39m [36md.s.w.p.documentationpluginsbootstrapper[0;39m [2m:[0;39m found 1 custom documentation plugin(s)
[2m2026-04-08 17:40:54.785[0;39m [32m info[0;39m [35m5024[0;39m [2m---[0;39m [2m[  restartedmain][0;39m [36ms.d.s.w.s.apilistingreferencescanner    [0;39m [2m:[0;39m scanning for api listing references
[2m2026-04-08 17:40:54.947[0;39m [32m info[0;39m [35m5024[0;39m [2m---[0;39m [2m[  restartedmain][0;39m [36m.d.s.w.r.o.cachingoperationnamegenerator[0;39m [2m:[0;39m generating unique operation named: uploadusingpost_1
[2m2026-04-08 17:40:54.960[0;39m [32m info[0;39m [35m5024[0;39m [2m---[0;39m [2m[  restartedmain][0;39m [36m.d.s.w.r.o.cachingoperationnamegenerator[0;39m [2m:[0;39m generating unique operation named: backdownuploadusingget_1
[2m2026-04-08 17:40:54.994[0;39m [32m info[0;39m [35m5024[0;39m [2m---[0;39m [2m[  restartedmain][0;39m [36mo.a.c.h.http11nioprotocol               [0;39m [2m:[0;39m starting protocolhandler ["http-nio-8082"]
[2m2026-04-08 17:40:55.002[0;39m [32m info[0;39m [35m5024[0;39m [2m---[0;39m [2m[  restartedmain][0;39m [36mo.a.c.h.http11nioprotocol               [0;39m [2m:[0;39m starting protocolhandler ["http-nio-80"]
[2m2026-04-08 17:40:55.004[0;39m [32m info[0;39m [35m5024[0;39m [2m---[0;39m [2m[  restartedmain][0;39m [36mo.a.c.h.http11nioprotocol               [0;39m [2m:[0;39m starting protocolhandler ["http-nio-8085"]
[2m2026-04-08 17:40:55.014[0;39m [32m info[0;39m [35m5024[0;39m [2m---[0;39m [2m[  restartedmain][0;39m [36mo.s.b.w.e.t.tomcatwebserver             [0;39m [2m:[0;39m tomcat started on port(s): 8082 (http) 80 (http) 8085 (http) with context path ''
[2m2026-04-08 17:40:55.102[0;39m [32m info[0;39m [35m5024[0;39m [2m---[0;39m [2m[  restartedmain][0;39m [36mc.f.httpbootapplication                 [0;39m [2m:[0;39m started httpbootapplication in 5.126 seconds (jvm running for 6.249)
[2m2026-04-08 17:40:55.353[0;39m [32m info[0;39m [35m5024[0;39m [2m---[0;39m [2m[nio-8082-exec-2][0;39m [36mo.a.c.c.c.[.[.[/]                       [0;39m [2m:[0;39m initializing spring dispatcherservlet 'dispatcherservlet'
[2m2026-04-08 17:40:55.354[0;39m [32m info[0;39m [35m5024[0;39m [2m---[0;39m [2m[nio-8082-exec-2][0;39m [36mo.s.w.s.dispatcherservlet               [0;39m [2m:[0;39m initializing servlet 'dispatcherservlet'
[2m2026-04-08 17:40:55.369[0;39m [32m info[0;39m [35m5024[0;39m [2m---[0;39m [2m[nio-8082-exec-2][0;39m [36mo.s.w.s.dispatcherservlet               [0;39m [2m:[0;39m completed initialization in 15 ms

三、jetty应用服务器

1,修改工程依赖文件

<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>
				<exclusion>
					<groupid>org.springframework.boot</groupid>
					<artifactid>spring-boot-starter-logging</artifactid>
				</exclusion>
			</exclusions>
		</dependency>
		<dependency>
			<groupid>org.springframework.boot</groupid>
			<artifactid>spring-boot-starter-log4j2</artifactid>
		</dependency>
		<!-- 异步日志,需要加入disruptor依赖 -->
		<dependency>
			<groupid>com.lmax</groupid>
			<artifactid>disruptor</artifactid>
			<version>3.4.2</version>
		</dependency>
		<!-- provided -->
		<dependency>
			<groupid>org.springframework.boot</groupid>
			<artifactid>spring-boot-starter-jetty</artifactid>
		</dependency>

2,定义启动端口

server:
 port: 443
 ssl:
   key-store: classpath:xxxxxxx.pfx
   key-store-password: xxxxxxx
   keystoretype: pkcs12
 servlet:
   context-path: /
   session:
     timeout: 1800
 http:
   ports: 80,8081

3,编写jettyhttp配置类

import java.util.arrays;

import org.eclipse.jetty.server.httpconfiguration;
import org.eclipse.jetty.server.httpconnectionfactory;
import org.eclipse.jetty.server.serverconnector;
import org.springframework.beans.factory.annotation.value;
import org.springframework.boot.web.embedded.jetty.jettyservletwebserverfactory;
import org.springframework.boot.web.servlet.server.servletwebserverfactory;
import org.springframework.context.annotation.bean;
import org.springframework.context.annotation.configuration;

@configuration
public class jettyhttpconfig
{
    @value("${server.http.ports:}")
    int[] httpports;
    
    /**
     * 添加额外的http连接器
     */
    @bean
    public servletwebserverfactory servletcontainer()
    {
        httpconfiguration httpconfig = new httpconfiguration();
        httpconfig.setsecurescheme("https");
        httpconfig.setsecureport(443);
        
        // 添加多个额外的http连接器
        jettyservletwebserverfactory factory = new jettyservletwebserverfactory();
        arrays.stream(httpports).foreach(port -> {
            factory.addservercustomizers(server -> {
                serverconnector httpconnector = new serverconnector(server, new httpconnectionfactory(httpconfig));
                httpconnector.setport(port);
                server.addconnector(httpconnector);
            });
        });
        return factory;
    }
}

4,运行结果

查看日志,可以看到我们成功在 port(s) 443 (ssl, http/1.1), 80 (http/1.1), 8081 (http/1.1)启动了应用。

  .   ____          _            __ _ _
 /\\ / ___'_ __ _ _(_)_ __  __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
 \\/  ___)| |_)| | | | | || (_| |  ) ) ) )
  '  |____| .__|_| |_|_| |_\__, | / / / /
 =========|_|==============|___/=/_/_/_/
[32m :: spring boot :: [39m      [2m (v2.2.4.release)[0;39m

[2m2026-04-08 17:45:45.859[0;39m [32m info[0;39m [35m6000[0;39m [2m---[0;39m [2m[  restartedmain][0;39m [36mc.f.httpsapplication                    [0;39m [2m:[0;39m starting httpsapplication on 10_0_16_11 with pid 6000 (c:\gitee\effict-side\springboot-ssl\target\classes started by administrator in c:\gitee\effict-side\springboot-ssl)
[2m2026-04-08 17:45:45.871[0;39m [32m info[0;39m [35m6000[0;39m [2m---[0;39m [2m[  restartedmain][0;39m [36mc.f.httpsapplication                    [0;39m [2m:[0;39m the following profiles are active: prod
[2m2026-04-08 17:45:45.921[0;39m [32m info[0;39m [35m6000[0;39m [2m---[0;39m [2m[  restartedmain][0;39m [36m.e.devtoolspropertydefaultspostprocessor[0;39m [2m:[0;39m devtools property defaults active! set 'spring.devtools.add-properties' to 'false' to disable
[2m2026-04-08 17:45:45.922[0;39m [32m info[0;39m [35m6000[0;39m [2m---[0;39m [2m[  restartedmain][0;39m [36m.e.devtoolspropertydefaultspostprocessor[0;39m [2m:[0;39m for additional web related logging consider setting the 'logging.level.web' property to 'debug'
[2m2026-04-08 17:45:46.623[0;39m [32m info[0;39m [35m6000[0;39m [2m---[0;39m [2m[  restartedmain][0;39m [36mo.e.j.u.log                             [0;39m [2m:[0;39m logging initialized @2312ms to org.eclipse.jetty.util.log.slf4jlog
[2m2026-04-08 17:45:46.856[0;39m [32m info[0;39m [35m6000[0;39m [2m---[0;39m [2m[  restartedmain][0;39m [36mo.s.b.w.e.j.jettyservletwebserverfactory[0;39m [2m:[0;39m server initialized with port: 443
[2m2026-04-08 17:45:46.872[0;39m [32m info[0;39m [35m6000[0;39m [2m---[0;39m [2m[  restartedmain][0;39m [36mo.e.j.s.server                          [0;39m [2m:[0;39m jetty-9.4.25.v20191220; built: 2019-12-20t17:00:00.294z; git: a9729c7e7f33a459d2616a8f9e9ba8a90f432e95; jvm 1.8.0_202-b08
[2m2026-04-08 17:45:46.900[0;39m [32m info[0;39m [35m6000[0;39m [2m---[0;39m [2m[  restartedmain][0;39m [36mo.e.j.s.h.c.application                 [0;39m [2m:[0;39m initializing spring embedded webapplicationcontext
[2m2026-04-08 17:45:46.901[0;39m [32m info[0;39m [35m6000[0;39m [2m---[0;39m [2m[  restartedmain][0;39m [36mo.s.w.c.contextloader                   [0;39m [2m:[0;39m root webapplicationcontext: initialization completed in 979 ms
[2m2026-04-08 17:45:47.147[0;39m [32m info[0;39m [35m6000[0;39m [2m---[0;39m [2m[  restartedmain][0;39m [36mo.e.j.s.session                         [0;39m [2m:[0;39m defaultsessionidmanager workername=node0
[2m2026-04-08 17:45:47.147[0;39m [32m info[0;39m [35m6000[0;39m [2m---[0;39m [2m[  restartedmain][0;39m [36mo.e.j.s.session                         [0;39m [2m:[0;39m no sessionscavenger set, using defaults
[2m2026-04-08 17:45:47.148[0;39m [32m info[0;39m [35m6000[0;39m [2m---[0;39m [2m[  restartedmain][0;39m [36mo.e.j.s.session                         [0;39m [2m:[0;39m node0 scavenging every 660000ms
[2m2026-04-08 17:45:47.159[0;39m [32m info[0;39m [35m6000[0;39m [2m---[0;39m [2m[  restartedmain][0;39m [36mo.e.j.s.h.contexthandler                [0;39m [2m:[0;39m started o.s.b.w.e.j.jettyembeddedwebappcontext@7f09c304{application,/,[file:///c:/users/administrator/appdata/local/temp/2/jetty-docbase.7882543093635305757.443/],available}
[2m2026-04-08 17:45:47.159[0;39m [32m info[0;39m [35m6000[0;39m [2m---[0;39m [2m[  restartedmain][0;39m [36mo.e.j.s.server                          [0;39m [2m:[0;39m started @2848ms
[2m2026-04-08 17:45:47.251[0;39m [32m info[0;39m [35m6000[0;39m [2m---[0;39m [2m[  restartedmain][0;39m [36mo.s.s.c.threadpooltaskexecutor          [0;39m [2m:[0;39m initializing executorservice 'applicationtaskexecutor'
[2m2026-04-08 17:45:47.314[0;39m [32m info[0;39m [35m6000[0;39m [2m---[0;39m [2m[  restartedmain][0;39m [36mo.s.b.a.w.s.welcomepagehandlermapping   [0;39m [2m:[0;39m adding welcome page: class path resource [static/index.html]
[2m2026-04-08 17:45:47.405[0;39m [32m info[0;39m [35m6000[0;39m [2m---[0;39m [2m[  restartedmain][0;39m [36mo.s.b.d.a.optionallivereloadserver      [0;39m [2m:[0;39m livereload server is running on port 35729
[2m2026-04-08 17:45:47.431[0;39m [32m info[0;39m [35m6000[0;39m [2m---[0;39m [2m[  restartedmain][0;39m [36mo.e.j.s.h.c.application                 [0;39m [2m:[0;39m initializing spring dispatcherservlet 'dispatcherservlet'
[2m2026-04-08 17:45:47.431[0;39m [32m info[0;39m [35m6000[0;39m [2m---[0;39m [2m[  restartedmain][0;39m [36mo.s.w.s.dispatcherservlet               [0;39m [2m:[0;39m initializing servlet 'dispatcherservlet'
[2m2026-04-08 17:45:47.436[0;39m [32m info[0;39m [35m6000[0;39m [2m---[0;39m [2m[  restartedmain][0;39m [36mo.s.w.s.dispatcherservlet               [0;39m [2m:[0;39m completed initialization in 4 ms
[2m2026-04-08 17:45:47.621[0;39m [32m info[0;39m [35m6000[0;39m [2m---[0;39m [2m[  restartedmain][0;39m [36mo.e.j.u.s.sslcontextfactory             [0;39m [2m:[0;39m x509=x509@1b40392c(00fly.online,h=[00fly.online, www.00fly.online],w=[]) for server@5eee0143[provider=null,keystore=file:///c:/gitee/effict-side/springboot-ssl/target/classes/data/ssl/00fly.online.pfx,truststore=null]
[2m2026-04-08 17:45:47.671[0;39m [32m info[0;39m [35m6000[0;39m [2m---[0;39m [2m[  restartedmain][0;39m [36mo.e.j.s.abstractconnector               [0;39m [2m:[0;39m started serverconnector@31a907ff{ssl,[ssl, http/1.1]}{0.0.0.0:443}
[2m2026-04-08 17:45:47.673[0;39m [32m info[0;39m [35m6000[0;39m [2m---[0;39m [2m[  restartedmain][0;39m [36mo.e.j.s.abstractconnector               [0;39m [2m:[0;39m started serverconnector@45a4bdf2{http/1.1,[http/1.1]}{0.0.0.0:80}
[2m2026-04-08 17:45:47.675[0;39m [32m info[0;39m [35m6000[0;39m [2m---[0;39m [2m[  restartedmain][0;39m [36mo.e.j.s.abstractconnector               [0;39m [2m:[0;39m started serverconnector@c2ae8e{http/1.1,[http/1.1]}{0.0.0.0:8081}
[2m2026-04-08 17:45:47.676[0;39m [32m info[0;39m [35m6000[0;39m [2m---[0;39m [2m[  restartedmain][0;39m [36mo.s.b.w.e.j.jettywebserver              [0;39m [2m:[0;39m jetty started on port(s) 443 (ssl, http/1.1), 80 (http/1.1), 8081 (http/1.1) with context path '/'

四、undertow应用服务器

1,修改工程依赖文件

spring-boot-starter-jetty修改为spring-boot-starter-undertow

2,编写undertowhttp配置类

import java.util.arrays;

import org.springframework.beans.factory.annotation.value;
import org.springframework.boot.web.embedded.undertow.undertowservletwebserverfactory;
import org.springframework.boot.web.servlet.server.servletwebserverfactory;
import org.springframework.context.annotation.bean;
import org.springframework.context.annotation.configuration;

import io.undertow.undertowoptions;

@configuration
public class undertowhttpconfig
{
    @value("${server.http.ports:}")
    int[] httpports;
    
    /**
     * 添加额外的http连接器
     */
    @bean
    public servletwebserverfactory servletcontainer()
    {
        // 添加多个额外的http连接器,并开启http2
        undertowservletwebserverfactory factory = new undertowservletwebserverfactory();
        arrays.stream(httpports).foreach(port -> {
            factory.addbuildercustomizers(builder -> builder.addhttplistener(port, "0.0.0.0").setserveroption(undertowoptions.enable_http2, true));
        });
        return factory;
    }
}

以上就是springboot web工程同时启动多个http端口的方法的详细内容,更多关于springboot web启动多个http端口的资料请关注代码网其它相关文章!

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2026  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com