为了账号安全,请及时绑定邮箱和手机立即绑定

SpringBoot 防止“端口正在使用”

SpringBoot 防止“端口正在使用”

Smart猫小萌 2021-12-10 10:56:14
我正在使用 Spring Boot,我想知道是否有定义的方法或一些开源库来确保连接建立的安全。例如默认端口是 8080,所以如果端口已经在使用,我会将端口设置为 8081,而不是让应用程序启动失败。
查看完整描述

2 回答

?
慕的地10843

TA贡献1785条经验 获得超8个赞

添加到您的属性文件server.port=0,spring boot 将自动选择可用端口。

请参阅文档(第 75.7 节 - 这是解决您的问题的一个很好的例子)。


查看完整回答
反对 回复 2021-12-10
?
holdtom

TA贡献1805条经验 获得超10个赞

我只是让你重新考虑这个想法,它不是生产就绪的,需要一些改进,但你绝对可以在你的main方法中尝试这样的事情:


@SpringBootApplication

public class MyApplication {


    public static void main(String[] args) {


        SpringApplication app = new SpringApplication(MyApplication.class);

        int serverPort = 8080;

        do {

            try {

                app.setDefaultProperties( Collections.singletonMap( "server.port", Integer.toString(serverPort) ) );

                app.run(args);

            } catch (Exception e) {

                serverPort++;

            }

        } while (serverPort < 9000);

    }

}

您可能已经注意到,理论上这应该会尝试一次又一次地设置端口,以防出现错误。我将其限制为端口 9000,但您可以尝试修补一个更适合您打算执行的操作的解决方案,并在您的特定用例场景中对其进行调整。


查看完整回答
反对 回复 2021-12-10
  • 2 回答
  • 0 关注
  • 244 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号