Spring Boot应用程序在两个不同的端口上具有两个服务

时间:2019-03-07 10:15:33

标签: java spring spring-boot

我有一个具有两项服务的Spring Boot应用程序,但我需要在端口8080上运行一项,而另一项则在8081上运行。现在,我正在使用sts(Spring工具套件)进行开发,并且使用“运行方式”选项运行该应用程序。春季启动应用”,因此我不知道在哪里更改服务器配置。有人可以帮助我吗?

6 个答案:

答案 0 :(得分:0)

可以在您使用的application.propertiesapplication.yaml配置文件中定义端口。

application.properties文件中,如下定义:

server.port=8090

或者如果您使用的是application.yaml配置,请按以下方式定义它:

server:
    port: 8090

答案 1 :(得分:0)

您可以在application.properties或application.yml中写以下行

server.port = 8080

答案 2 :(得分:0)

好的。您可以通过为每个服务设置server.port = number来在spring boot项目的application.properties文件中完成此操作。

答案 3 :(得分:0)

您不能在两个不同端口的同一spring boot应用程序下运行两个不同服务。如果需要,可以将一项服务移至另一项Spring Boot应用程序。 但是两种服务的端口号都不相同。

答案 4 :(得分:0)

您可以配置SprintBoot支持两个端口。常用的配置方法是使用application.propertiesapplication.yaml作为@Madhu Bhat答案。在SprintBoot中配置另一个端口代码,如下所示:

创建连接器

        int port = Integer.parseInt(probePort);
        Connector httpConnector = new Connector(HTTP_PROTOCOL);
        httpConnector.setPort(port);
        Http11NioProtocol handler = (Http11NioProtocol) httpConnector.getProtocolHandler();
        handler.setMaxThreads(10);
        handler.setMinSpareThreads(4);
        //handler.setAddress(InetAddress.getLocalHost());
        handler.setAddress(StringTool.getInetAddress());
        return httpConnector;

将连接器配置为

((TomcatEmbeddedServletContainerFactory) container).addAdditionalTomcatConnectors(connector);

答案 5 :(得分:0)

如果您使用 Docker(最常见的解决方案),您可以添加端口或其完整地址作为环境变量

docker-compose.yml 文件如下:

application1:
    image: 'application1:latest'
    build:
      context: ./
    container_name: application
    environment:
      - HOST-APP2=localhost:8082
    ports:
      - 8091:8080

application2:
    image: 'application2:latest'
    build:
      context: ./
    container_name: application
    environment:
      - HOST-APP1=localhost:8081
    ports:
      - 8092:8080

或者在构建容器时直接在 Dockerfile 中

在这里查看:https://vsupalov.com/docker-arg-env-variable-guide/ 这是一篇好文章