设置springboot启动端口

spring boot是个好东西,可以不用容器直接在main方法中启动,而且无需配置文件,方便快速搭建环境。可是当我们要同时启动2个springboot工程时,就会有问题,有可能会因为8080端口被第一个应用占用而导致第二个应用无法启动,这时就需要修改其中一个工程的启动端口。

可以通过实现EmbeddedServletContainerCustomizer接口来实现:

public class Application extends SpringBootServletInitializer implements EmbeddedServletContainerCustomizer {

	@Override
	protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
		return builder.sources(Application.class);
	}
	
    public static void main(String[] args) {
        SpringApplication.run(Application.class, args);
    }


	@Override
	public void customize(ConfigurableEmbeddedServletContainer container) {
		container.setPort(8081);
	}
}


更多内容请关注微信:


### 更改 Spring Boot 默认启动端口的方法 Spring Boot 提供了多种方式来更改其默认的应用程序启动端口。以下是具体实现方法: #### 方法一:通过 `application.properties` 或 `application.yml` 配置文件设置 可以在项目的配置文件中指定新的端口号。对于基于 JavaSpring Boot 项目,默认支持两种主要的配置文件格式。 如果使用的是 `application.properties` 文件,则可以通过添加以下属性完成端口修改: ```properties server.port=9000 ``` 如果是采用 YAML 格式的配置文件 (`application.yml`),则可以这样定义: ```yaml server: port: 9000 ``` 以上操作会使得应用程序在启动时监听 9000 端口而不是默认的 8080 端口[^1]。 #### 方法二:命令行参数覆盖默认值 除了静态配置外,还可以利用命令行参数动态调整端口。当运行 Spring Boot 应用时,在 JVM 参数或者命令行选项中加入 `-Dserver.port=<新端口号>` 即可临时改变端口。例如: ```bash java -jar my-spring-boot-app.jar --server.port=9000 ``` 这种方式特别适合于测试环境下的灵活切换需求[^2]。 #### 方法三:编码层面自定义 Bean 实现动态端口设定 虽然上述两种方法已经能够满足大部分场景的需求,但在某些特殊情况下可能还需要更复杂的逻辑控制端口分配。这时可通过编写特定类并注入相应 bean 来达成目的。下面展示了一个例子,其中展示了如何创建一个全局视图配置类,并且理论上也可以扩展用于管理服务主机地址等相关信息。 ```java package com.example.config; import org.springframework.boot.web.server.WebServerFactoryCustomizer; import org.springframework.boot.web.embedded.tomcat.TomcatServletWebServerFactory; import org.springframework.stereotype.Component; @Component public class CustomPortConfigurer implements WebServerFactoryCustomizer<TomcatServletWebServerFactory> { private final int customPort; public CustomPortConfigurer() { this.customPort = Integer.getInteger("custom.port", 9000); // 使用系统变量或默认值 } @Override public void customize(TomcatServletWebServerFactory factory) { factory.setPort(customPort); } } ``` 此代码片段实现了对 Tomcat 容器实例化过程中的进一步定制功能[^4]。 综上所述,无论是简单地编辑配置文件还是深入到源码级别去操控服务器行为,都有相应的解决方案可供选择以适应不同层次的技术要求和业务背景。
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值