如何配置Spring Boot应用程序侦听的TCP/IP端口,使其不使用默认端口8080。
当前回答
延伸其他答案:
文档中有一个测试部分解释了如何在集成测试中配置端口:
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() {
}
}
其他回答
把这段代码放在uapplicatop中。属性文件
在Spring引导应用程序中,有两种主要方法可以更改嵌入式Tomcat中的端口。
修改application.properties
首先,您可以尝试应用程序。属性文件在/resources文件夹:
server.port = 8090
修改虚拟机选项
第二种方法,如果你想避免修改任何文件和检入你只需要在你的本地文件,你可以使用vm arg:
执行—>编辑配置—>虚拟机选项
-Dserver.port=8090
此外,如果您需要更多信息,可以查看下面的博客文章:在Spring引导应用程序上更改端口
在application.properties中包含下面的属性
server.port=8080
如果你正在使用spring命令行接口(CLI),使用——将命令与spring命令参数分开,来更改端口:
春天跑你好。Groovy -- --server.port=9000
spring-boot cli
这招对我很管用:
增加了一个自定义容器类:
@Component
public class CustomContainer implements EmbeddedServletContainerCustomizer {
@Override
public void customize(ConfigurableEmbeddedServletContainer configurableEmbeddedServletContainer) {
configurableEmbeddedServletContainer.setPort(8888);
}
}
但这仍然没有使用端口8888。
然后我设置“scanBasePackages”属性就像这样在“@SpringBootApplication”类上我的主要方法:(scanBasePackages ={"自定义容器包"})
@SpringBootApplication(scanBasePackages = {"com.javabrains.util"})
public class CourseApiApp {
public static void main (String args []) {
SpringApplication.run(CourseApiApp.class, args);
}
}
它开始拾取自定义容器中的端口集。
推荐文章
- for循环和for-each循环在性能上有区别吗?
- 你如何比较两个版本的字符串在Java?
- 为什么在Java和。net中不能修改字符串?
- java.util.Random真的那么随机吗?我怎么能生成52!(阶乘)可能的序列?
- ZoneOffset之间的区别是什么。UTC和ZoneId.of(“UTC”)?
- 类未找到:IntelliJ中的空测试套件
- 将JAR文件添加到Spark作业- Spark -submit
- REST API - dto还是不是?
- Spring MVC中的ApplicationContext和WebApplicationContext有什么区别?
- JavaFX应用程序图标
- Java:强/软/弱/幻影引用的区别
- 在序列化和反序列化期间JSON属性的不同名称
- 获取Android设备名称
- Gradle代理配置
- 如何获得具有已知资源名称的资源id ?