Spring Boot项目启动端口修改

本文介绍了解决SpringBoot项目中端口冲突的方法,包括通过实现EmbeddedServletContainerCustomizer接口和修改application.properties配置文件两种途径,以确保多个项目能够同时运行在不同端口上。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在使用spring boot进行项目启动时,如果需要同时启动2个springboot工程,或者项目中tomcat的默认端口号8080被使用时,就会有问题(如下图所示),会因为8080端口被第一个应用占用而导致第二个应用无法启动,这时就需要修改其中一个工程的启动端口。

这里收集到了两种处理方式:

1.  通过实现EmbeddedServletContainerCustomizer接口来实现:

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.context.embedded.ConfigurableEmbeddedServletContainer;
import org.springframework.boot.context.embedded.EmbeddedServletContainerCustomizer;
import org.springframework.boot.web.support.SpringBootServletInitializer;
import org.springframework.context.annotation.Configuration;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

@Controller
@SpringBootApplication
@Configuration
public class HelloApplication extends SpringBootServletInitializer implements EmbeddedServletContainerCustomizer {
	
	@RequestMapping("hello")
	@ResponseBody
	public String hello() {
		return "Hello First Spring boot processiong ...";
	}
	
	public static void main(String[] args) {
		SpringApplication.run(HelloApplication.class, args);
	}

	@Override
	public void customize(ConfigurableEmbeddedServletContainer container) {
		// TODO Auto-generated method stub
		container.setPort(8010);
	}
}

2.  通过修改application.properties配置文件来实现:设置该配置文件中的server.port=8010;

以上方式用于将项目中原有的端口号修改为指定的8010端口号。

<think>好的,用户现在问的是Spring Boot项目启动配置端口的问题。首先,我需要回顾之前的对话,确保这次回答符合用户的要求。之前用户遇到了Linux中netstat命令找不到的问题,我详细解释了原因和解决方法,还提到了替代命令ss,并且按照用户的要求使用了中文,结构清晰,分点说明,还用了代码块和表格。现在用户的问题是关于Spring Boot配置端口,我需要保持同样的风格。 接下来,我需要考虑用户可能的真实需求。用户可能刚接触Spring Boot,想了解如何配置端口,或者在实际项目中遇到了端口冲突的问题,需要修改默认端口。深层需求可能包括如何在不同的环境中配置不同的端口,比如开发、测试和生产环境,或者如何通过外部配置来动态设置端口,而不用修改代码。 然后,我需要整理Spring Boot中配置端口的所有方法。默认情况下,Spring Boot使用8080端口,但可以通过多种方式修改。常见的方法包括在application.properties或application.yml中设置,通过命令行参数,环境变量,或者编程方式设置。此外,可能还需要提到如何随机分配端口,这在微服务架构中很常见,以避免端口冲突。 还要注意不同配置方式的优先级,比如命令行参数会覆盖配置文件中的设置。同时,可能需要解释如何在不同profile下配置不同的端口,比如application-dev.properties和application-prod.properties,这样用户可以根据环境切换配置。 另外,用户可能对如何验证端口是否配置成功感兴趣,可以建议在启动日志中查看Tomcat启动端口信息,或者使用netstat或ss命令检查端口监听情况,但之前用户遇到过netstat不可用的问题,可能需要再次提醒使用ss命令,或者直接查看日志。 可能还需要提到一些高级配置,比如在application.properties中配置多个server.port,但实际上Spring Boot只会使用最后一个,或者如何通过实现WebServerFactoryCustomizer接口来自定义端口设置,虽然这种情况较少,但为了全面性还是应该涵盖。 还要考虑用户是否可能在使用其他嵌入式服务器,比如Jetty或Undertow,但通常配置方式是一样的,都是通过server.port属性,所以可能不需要特别说明,除非有特殊情况。 最后,总结配置方式,强调推荐使用外部配置(如配置文件或环境变量)而不是硬编码,以便于不同环境的部署。同时,提醒用户注意端口冲突问题,以及如何通过随机端口来避免,特别是在多个实例同时运行时。 现在需要将这些思考整理成一个结构清晰、分点明确的回答,使用用户之前接受的格式,比如分点说明,代码块,表格,注意事项等,确保信息准确且易于理解。同时保持口语化,避免使用专业术语过多,必要时给出示例代码和验证方法。</think>以下是Spring Boot项目配置服务端口的完整指南: --- ### 一、默认端口行为 Spring Boot默认使用`8080`端口启动嵌入式Tomcat服务器 --- ### 二、常用配置方式 #### 方式1:配置文件设置 **application.properties**: ```properties server.port=9090 # 设置固定端口 # server.port=0 # 随机可用端口 ``` **application.yml**: ```yaml server: port: 9090 address: 0.0.0.0 # 可选绑定IP ``` #### 方式2:命令行启动参数 ```bash java -jar your-app.jar --server.port=9090 ``` #### 方式3:环境变量配置 ```bash export SERVER_PORT=9090 # Linux/Mac set SERVER_PORT=9090 # Windows ``` --- ### 三、多环境配置示例 创建不同配置文件: ``` ├── application-dev.properties # 开发环境 ├──
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值