如何配置Spring Boot应用程序侦听的TCP/IP端口,使其不使用默认端口8080。


当前回答

正如Spring文档中解释的那样,有几种方法可以做到这一点:

您可以在命令行中设置端口(例如8888)

-Dserver。Port =8888或——server.port=8888

例如:java -jar -Dserver。端口= 8888 test.jar

或者在application.properties中设置端口

server.port=${port:4588}

或(在申请中)。Yml和yaml语法)

server:
   port: ${port:4588}

如果在命令行中设置了-Dport(或-Dserver.port)传递的端口,则将考虑该端口。如果不是,则端口默认为4588。

如果你想在属性文件中强制端口,不管环境变量是什么,你只需要写:

server.port=8888

其他回答

在Spring引导应用程序中,有两种主要方法可以更改嵌入式Tomcat中的端口。

修改application.properties

首先,您可以尝试应用程序。属性文件在/resources文件夹:

server.port = 8090

修改虚拟机选项

第二种方法,如果你想避免修改任何文件和检入你只需要在你的本地文件,你可以使用vm arg:

执行—>编辑配置—>虚拟机选项

-Dserver.port=8090

此外,如果您需要更多信息,可以查看下面的博客文章:在Spring引导应用程序上更改端口

延伸其他答案:

文档中有一个测试部分解释了如何在集成测试中配置端口:

41.3测试Spring Boot应用程序 41.3.3使用随机端口


在集成测试中,端口配置是使用注释@SpringBootTest和webEnvironment值完成的。


随机端口:

@SpringBootTest(webEnvironment=WebEnvironment.RANDOM_PORT)

您可以使用与@Value("${local.server.port}")相同的@LocalServerPort注入值。

例子:

随机端口测试配置:

@RunWith(SpringRunner.class
@SpringBootTest(webEnvironment = WebEnvironment.RANDOM_PORT)
public class ExampleTest {
   ...
   @LocalServerPort //to inject port value
   int port;
}

定义端口:

@SpringBootTest(webEnvironment=WebEnvironment.DEFINED_PORT)

它从服务器获取值。端口,如果已定义。

如果使用@TestPropertySource(properties = "server.port=9192")定义,它将覆盖其他定义的值。 如果不是,则从src/test/resources/application获取值。属性(如果存在)。 最后,如果没有定义它,则从默认的8080开始。

例子:

定义端口测试配置:

@RunWith(SpringRunner.class)
@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.DEFINED_PORT)
@TestPropertySource(properties = "server.port=9192")
public class DemoApplicationTests {

    @Test
    public void contextLoads() {
    }

}

默认情况下,spring-web模块提供了一个嵌入式tomcat服务器,该服务器在端口号8080下运行。如果需要修改应用程序的端口号,请进入应用程序。属性文件,并使用server配置端口号。端口属性。

  server.port= 9876

然后,您的应用程序在端口9876下运行。

如果端口号可以是随机的,则可以在应用程序中使用随机函数。属性server.port = $ {random.int (4)}

打开应用程序。属性文件。并在属性文件中添加下面的属性。

server.port = 1443

这将很好地工作,您可以根据自己的愿望设置任何端口号。