Spring Boot不遵守命令行参数

时间:2015-10-16 17:22:29

标签: java spring

将一个非常基本的Spring Boot RESTful后端与一些CRUD端点组合在一起。试图在我的Centos7服务器上启动它。但是我已经有一个应用程序正在监听它的默认端口8080,所以我必须配置它。

我试过了:

java -jar target/rest-1.0-SNAPSHOT.jar --server.port=8090

java -jar target/rest-1.0-SNAPSHOT.jar --Dserver.port=8090

java -jar target/rest-1.0-SNAPSHOT.jar --port=8090

java -jar target/rest-1.0-SNAPSHOT.jar --Dport=8090

我的application.properties包含以下行:

server.port=${port:8090}

Spring Boot仍在端口8080上启动嵌入式Tomcat容器。它没有收到消息。我错过了什么?

修改:设置SERVER_PORT=8090有效 - 请参阅下文

3 个答案:

答案 0 :(得分:2)

尝试-Dserver.port=8090注意单- 要么 application.properties文件中的server.port=xxxx

修改: -

检查您的日志,下面的行将在控制台2015-10-16 23:13:23.082 INFO 4228 --- [ main] s.b.c.e.t.TomcatEmbeddedServletContainer : Tomcat initialized with port(s): 8090 (http)

中回显

VM arg覆盖application.properties

答案 1 :(得分:0)

如果jar的同一文件夹中有“ application.yml”或“ application.properties”,则jar将优先使用外部配置文件。 对我来说没有任何意义,但这是事实。 springboot优先于外部配置文件,而不是内部配置文件。

答案 2 :(得分:-1)

我们有四种不同的方式来更改默认端口。

  1. 使用application.properties或application.yml
  2. 实施EmbeddedServletContainerCustomizer接口
  3. 使用SpringApplication类
  4. 直接通过命令行更改端口
  5. 有关详细信息,请访问以下内容 http://www.javainterviewpoint.com/spring-boot-change-embedded-tomcat-default-port/