
在IDEA中运行一个服务并监听多个端口,常见于微服务开发或需要模拟多实例的场景。以下是两种主流实现方式:
适用于Spring Boot项目,通过配置文件动态指定端口:
application.properties或application.yml,添加多端口配置:server.port=8080
# 定义额外端口
custom.secondary-port=8081SpringApplication实例:@SpringBootApplication
public class MultiPortApp {
public static void main(String[] args) {
// 主端口启动
SpringApplication.run(MultiPortApp.class, args);
// 启动第二个实例
new SpringApplicationBuilder(MultiPortApp.class)
.properties("server.port=" + 8081)
.run(args);
}
}@Profile或条件注解实现。适用于任何Java服务,无需代码修改:
Run -> Edit ConfigurationsCopy ConfigurationVM options或Program arguments中添加端口参数,例如: --server.port=8081-Dport=8081

这个启动就可以用一个服务多个端口启动了
app-8080.log和app-8081.log@ConditionalOnProperty实现端口特定的Bean加载String port = System.getenv("APP_PORT");
if(port == null) port = "8080";