方式一: 配置文件 application.properties
server.port=7777
方式二: java啓動命令
-
# 以應用參數的方式
-
java -jar <path/to/my/jar> --server.port=
7777
-
# 或以 JDK 參數的方式
-
java -Dserver.port=7777 -jar <path/to/my/jar>
方式三: 環境變量 SERVER_PORT
-
Linux: SERVER_PORT=7777 java -jar <path/to/my/jar>
-
Windows:SET SERVER_PORT=7777 java -jar <path/to/my/jar>
方式四: 環境變量 SPRING_APPLICATION_JSON
-
Linux:SPRING_APPLICATION_JSON='{"server.port":7788}' java -jar <path/to/my/jar> # 或 java -Dspring.application.json='{"server.port":7788}' -jar <path/to/my/jar> # 或java -jar <path/to/my/jar> --spring.application.json='{"server.port":7788}'
參數優先級
啓動命令應用參數 > 啓動命令 JDK 參數 > 環境變量
如果我們同時給定這些參數, 如下:
SERVER_PORT=3344 java -Dserver.port=5566 -jar <path/to/my/jar> --server.port=7777
生效的是 --server.port=7777
這個參數.
其中
SpringBoot中有以下兩種配置文件bootstrap (.yml 或者 .properties),application (.yml 或者 .properties)
1.加載順序上的區別
bootstrap.yml(bootstrap.properties)先加載
application.yml(application.properties)後加載
bootstrap.yml 用於應用程序上下文的引導階段,由父Spring ApplicationContext加載。父ApplicationContext 被加載到使用application.yml的之前。
在 Spring Boot 中有兩種上下文,一種是 bootstrap, 另外一種是 application, bootstrap 是應用程序的父上下文,也就是說 bootstrap 加載優先於 applicaton。bootstrap 主要用於從額外的資源來加載配置信息,還可以在本地外部配置文件中解密屬性。這兩個上下文共用一個環境,它是任何Spring應用程序的外部屬性的來源。bootstrap 裏面的屬性會優先加載,它們默認也不能被本地相同配置覆蓋。
2.bootstrap/ application 的應用場。
bootstrap.yml 和application.yml 都可以用來配置參數。
bootstrap.yml 可以理解成系統級別的一些參數配置,這些參數一般是不會變動的。
application 配置文件這個容易理解,pplication.yml 可以用來定義應用級別的,主要用於 Spring Boot 項目的自動化配置。
bootstrap 配置文件有以下幾個應用場景。
使用 Spring Cloud Config 配置中心時,這時需要在 bootstrap 配置文件中添加連接到配置中心的配置屬性來加載外部配置中心的配置信息;
一些固定的不能被覆蓋的屬性
一些加密/解密的場景;