如何配置Spring Boot应用程序侦听的TCP/IP端口,使其不使用默认端口8080。
当前回答
如果你打算在命令环境中以jar文件的形式运行应用程序,只需输入“SERVER_PORT=***”作为前缀。要执行的完整命令如下所示:
SERVER_PORT=8080 java -jar ***.jar
如果你想在Linux下后台运行应用程序,使用'nohup'命令将如下所示:
SERVER_PORT=8080 nohup java -jar ***.jar &
其他回答
使用属性服务器。例如,端口=8080,就像在其他答案中提到的那样,绝对是一种方法。只是想提一下,你也可以暴露一个环境属性:
SERVER_PORT=8080
因为在最近的版本中,spring boot能够替换“_”中的“。”,并将环境变量的小写改为大写。 这在容器中特别有用,在容器中,你所要做的就是定义环境变量,而不需要添加/编辑应用程序。属性或通过命令行传递系统属性(即-Dserver.port=$PORT)
除了在申请时添加端口。属性,通过将属性文件方法与Spring配置文件相结合,您还可以轻松地实现针对不同环境的多个端口。具体来说,我们可以为每个环境创建一个属性文件。
例如,我们将有一个应用程序开发。包含以下内容的属性文件:
server.port=8081
然后您可以添加另一个应用程序-qa。属性文件使用不同的端口:
server.port=8082
这招对我很管用:
增加了一个自定义容器类:
@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);
}
}
它开始拾取自定义容器中的端口集。
在应用中提供端口号。属性文件将解决该问题
server.port = 8080
“端口取决于您的选择,您希望将应用程序托管在哪里”
这个问题是Gradle Spring Port的第一个结果。
如果你使用gradle,你可以这样做,如果你有Spring Boot gradle插件已经应用:
bootRun {
args += ["--server.port=[PORT]"]
}
想知道更复杂的答案,请看我的回答。
推荐文章
- 在流中使用Java 8 foreach循环移动到下一项
- 访问限制:'Application'类型不是API(必需库rt.jar的限制)
- 用Java计算两个日期之间的天数
- 如何配置slf4j-simple
- 在Jar文件中运行类
- 带参数的可运行?
- 我如何找到哪个程序正在使用端口80在Windows?
- 我如何得到一个字符串的前n个字符而不检查大小或出界?
- 我可以在Java中设置enum起始值吗?
- Java中的回调函数
- c#和Java中的泛型有什么不同?和模板在c++ ?
- 在Java中,流相对于循环的优势是什么?
- Jersey在未找到InjectionManagerFactory时停止工作
- 在Java流是peek真的只是调试?
- Recyclerview不调用onCreateViewHolder