最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

IntelliJ IDEA啟動項目時配置端口的操作指南

 更新時間:2025年09月12日 08:56:47   作者:李少兄  
默認情況下,Spring Boot 應用會使用 8080 端口啟動,但在有些場景中,我們必須自定義端口,所以本文給大家詳細介紹了IntelliJ IDEA啟動項目時配置端口的詳細指南,需要的朋友可以參考下

一、為什么需要手動設置啟動端口?

默認情況下,Spring Boot 應用會使用 8080 端口啟動。但在以下場景中,我們必須自定義端口:

  • 多個微服務同時運行,需避免端口沖突;
  • 團隊協(xié)作開發(fā),統(tǒng)一規(guī)范不同服務的端口號;
  • 測試負載均衡或集群部署;
  • CI/CD 環(huán)境下動態(tài)傳入端口;
  • 調(diào)試時快速切換配置而不修改源碼。

二、四種主流方式

方法一:通過配置文件設置端口(推薦用于常規(guī)開發(fā))

這是最基礎也是最常用的配置方式,適用于 Spring Boot 項目。

支持的配置文件類型

文件名格式說明
application.properties鍵值對格式,簡潔明了
application.yml層級結構清晰,適合復雜配置

操作步驟

打開你的項目資源目錄:

src/main/resources/

編輯 application.properties 文件,添加如下內(nèi)容:

server.port=8081

或者編輯 application.yml 文件:

server:
  port: 8081

保存文件后直接運行主類即可生效。

注意事項

  • 若未指定端口,默認使用 8080
  • 配置文件中的設置會被更高優(yōu)先級的方式覆蓋(見后文“優(yōu)先級”章節(jié))。
  • 推薦使用 .yml 格式以支持多 profile 配置(如 application-dev.yml, application-prod.yml)。

最佳實踐

# application.yml 示例:根據(jù)不同環(huán)境設置端口
spring:
  profiles:
    active: dev

---
spring:
  config:
    activate:
      on-profile: dev
server:
  port: 8081

---
spring:
  config:
    activate:
      on-profile: test
server:
  port: 9090

然后在運行配置中添加程序參數(shù):--spring.profiles.active=test

方法二:通過 VM Options 設置端口(適合臨時調(diào)試與多實例)

當你要在同一臺機器上啟動多個相同服務實例時,VM Options 是最實用的方式。

關鍵點:新版 IDEA 默認隱藏部分高級選項,必須手動開啟!

完整操作流程(含界面細節(jié))

點擊右上角運行配置下拉框 → 選擇 Edit Configurations…

在左側選擇你的運行配置(通常是 Spring Boot 類型)

查找右側是否有 “VM options:” 輸入框:

  • 如果沒有,請點擊下方按鈕:Modify Options
  • 彈出菜單后勾選 Add VM options

此時會出現(xiàn)輸入框,在其中填寫:

-Dserver.port=8082

點擊 ApplyOK

啟動項目,查看控制臺輸出確認端口已變更:

Tomcat started on port(s): 8082 (http)

新版 IDEA 界面提示(文字版)

  • “Modify Options” 按鈕位于配置面板底部,圖標為齒輪或三個點。
  • 勾選后,“VM options” 字段自動出現(xiàn),支持 -Dkey=value 形式的 JVM 參數(shù)注入。

使用場景舉例

場景配置示例
第一個實例-Dserver.port=8081
第二個實例-Dserver.port=8082
第三個實例-Dserver.port=8083

可復制多個運行配置,分別設置不同端口,實現(xiàn)一鍵并行啟動。

方法三:通過 Program Arguments 設置端口(命令行風格)

與 VM Options 不同,這種方式是將參數(shù)傳遞給應用程序本身,而非 JVM。

如何添加?

  1. 進入 Run/Debug Configurations
  2. 點擊 Modify Options
  3. 勾選 Program arguments
  4. 輸入:
--server.port=8084

與 VM Options 的區(qū)別對比

維度VM Options (-D)Program Arguments (--)
作用對象JVM 系統(tǒng)屬性應用程序參數(shù)
語法-Dkey=value--key=value
是否影響其他系統(tǒng)屬性
Spring Boot 是否識別? 是? 是
優(yōu)先級更高略低(但仍高于配置文件)

注:兩者均可被 Spring Boot 正確解析,但 -D 方式更底層,可用于非 Spring 項目。

方法四:通過環(huán)境變量設置端口(適合生產(chǎn)模擬與自動化)

某些云平臺或容器化部署依賴環(huán)境變量來決定端口(如 Kubernetes、Docker)。

在 IDEA 中模擬環(huán)境變量

  1. 進入 Run Configuration
  2. 點擊 Modify Options
  3. 勾選 Environment variables
  4. 添加鍵值對:
    • Key: SERVER_PORT
    • Value: 8085

或者寫成一行:

SERVER_PORT=8085;JAVA_OPTS=-Xmx512m

提示:Spring Boot 自動映射 SERVER_PORT 到 server.port

實際應用場景

# Docker 啟動時指定
docker run -e SERVER_PORT=8086 my-spring-app

在本地 IDEA 中提前測試該行為,可極大提升部署穩(wěn)定性。

三、四大方式優(yōu)先級

Spring Boot 對端口配置有明確的優(yōu)先級順序,了解這一點至關重要:

優(yōu)先級配置方式來源
1?? 最高命令行參數(shù)--server.port=9000
2??VM Options-Dserver.port=9000
3??環(huán)境變量SERVER_PORT=9000
4??配置文件application.yml / application.properties
5?? 最低默認值內(nèi)嵌服務器默認端口(Tomcat: 8080)

記憶口訣:“外 > 內(nèi),動 > 靜” —— 外部傳入 > 內(nèi)部寫死;動態(tài)傳參 > 靜態(tài)配置

四、進階:多實例并行啟動(Compound Configuration)

當你需要一次性啟動多個不同端口的服務(例如訂單服務 + 用戶服務 + 網(wǎng)關),可以使用 Compound Configuration 功能。

操作步驟

  1. 打開 Edit Configurations
  2. 點擊左上角 + 號 → 選擇 Compound
  3. 命名(如:Microservices Cluster
  4. Included configurations 中添加多個已有的運行配置
  5. 每個子配置可獨立設置端口(通過 VM Options)
  6. 點擊運行按鈕,所有服務將按順序啟動

優(yōu)勢

  • 一鍵啟動整個微服務體系;
  • 支持跨模塊聯(lián)合調(diào)試;
  • 提升團隊協(xié)作效率。

五、常見問題與解決方案

Q1:啟動時報錯 Address already in use: bind

說明端口已被占用。

解決方案:

Windows:

netstat -ano | findstr :8081
taskkill /PID <進程ID> /F

macOS/Linux:

lsof -i :8081
kill -9 <PID>

Q2:VM Options 選項找不到?

原因:新版 IDEA 默認隱藏。

正確做法:

  • 必須先進入 Modify Options
  • 主動勾選 Add VM options

Q3:端口改了但沒生效?

檢查:

  1. 是否拼錯關鍵字(應為 server.port,不是 port.server
  2. 是否有多個配置文件沖突
  3. 是否使用了 Profile 激活了另一個配置
  4. 控制臺日志是否顯示最終使用的端口

六、各方法適用場景總結

方法適用階段是否推薦備注
配置文件日常開發(fā)? 強烈推薦易維護,版本控制友好
VM Options調(diào)試/多實例? 推薦靈活,不污染代碼
Program Arguments命令行兼容? 推薦與腳本一致
環(huán)境變量生產(chǎn)模擬? 推薦符合 DevOps 實踐
Compound 配置微服務聯(lián)調(diào)? 強烈推薦提升開發(fā)效率

七、技術延伸

Spring Boot 使用 PropertySource 層次結構加載配置,形成一個有序的“配置棧”。你可以通過以下代碼驗證當前生效的端口來源:

@RestController
public class PortInfoController {

    @Value("${server.port}")
    private int port;

    @Autowired
    private Environment env;

    @GetMapping("/port")
    public Map<String, Object> getPortInfo() {
        Map<String, Object> info = new HashMap<>();
        info.put("currentPort", port);
        info.put("propertySources", Arrays.toString(env.getPropertySources().stream()
            .map(EnumerablePropertySource::getName)
            .toArray()));
        return info;
    }
}

訪問 /port 接口即可看到哪些配置源參與了決策。

以上就是IntelliJ IDEA啟動項目時配置端口的操作指南的詳細內(nèi)容,更多關于IDEA啟動項目配置端口的資料請關注腳本之家其它相關文章!

相關文章

  • Mybatis源碼分析之存儲過程調(diào)用和運行流程

    Mybatis源碼分析之存儲過程調(diào)用和運行流程

    這一篇我們學習一下Mybatis調(diào)用存儲過程的使用和運行流程,首先我們創(chuàng)建一個簡單的存儲過程,具體創(chuàng)建過程大家可以通過本文學習下
    2016-11-11
  • SpringBoot和Vue接口如何調(diào)用傳參

    SpringBoot和Vue接口如何調(diào)用傳參

    本文總結了SpringBoot和Vue.js中接口調(diào)用的常見傳參方式,包括GET、POST請求的參數(shù)傳遞方式,以及SpringBoot中常用的注解進行參數(shù)接收的方法,文章詳細介紹了Axios請求的封裝方法,并提供了一些實際的代碼示例
    2025-02-02
  • Java實現(xiàn)五子棋游戲(控制臺版)

    Java實現(xiàn)五子棋游戲(控制臺版)

    這篇文章主要為大家詳細介紹了Java控制臺版實現(xiàn)五子棋游戲,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-10-10
  • Spring Boot自定義注解從入門到實戰(zhàn)指南

    Spring Boot自定義注解從入門到實戰(zhàn)指南

    本文介紹了SpringBoot中自定義注解的設計、實現(xiàn)與應用技巧,涵蓋了注解基礎、創(chuàng)建自定義注解、注解處理器實現(xiàn)方案、高級注解特性、性能優(yōu)化與最佳實踐、實戰(zhàn)案例、測試策略、常見問題與解決方案以及總結與最佳實踐,感興趣的朋友跟隨小編一起看看吧
    2025-12-12
  • SpringBoot實現(xiàn)簡單文件上傳功能

    SpringBoot實現(xiàn)簡單文件上傳功能

    這篇文章主要為大家詳細介紹了SpringBoot實現(xiàn)簡單文件上傳功能,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-08-08
  • Java單線程ThreadLocal串值問題解決方案

    Java單線程ThreadLocal串值問題解決方案

    這篇文章主要介紹了Java單線程ThreadLocal串值問題解決方案,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-04-04
  • springboot之聯(lián)表查詢方式

    springboot之聯(lián)表查詢方式

    這篇文章主要介紹了springboot之聯(lián)表查詢方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-07-07
  • Java8新特性時間日期庫DateTime API及示例詳解

    Java8新特性時間日期庫DateTime API及示例詳解

    這篇文章主要介紹了Java8新特性時間日期庫DateTime API及示例詳解,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-10-10
  • Springboot集成jsp及部署服務器實現(xiàn)原理

    Springboot集成jsp及部署服務器實現(xiàn)原理

    這篇文章主要介紹了Springboot集成jsp及部署服務器實現(xiàn)原理,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-08-08
  • 淺談一下Java中的ReentrantLock

    淺談一下Java中的ReentrantLock

    這篇文章主要介紹了淺談一下Java中的ReentrantLock,這個類是JUC工具包中對線程安全問題提供的一種解決方案,它主要是用來給對象上鎖,保證同一時間這能有一個線程在訪問當前對象,需要的朋友可以參考下
    2023-09-09

最新評論

宜黄县| 珲春市| 新源县| 长阳| 四会市| 澄迈县| 怀宁县| 云浮市| 郧西县| 观塘区| 荔波县| 灌云县| 麻阳| 台州市| 和田县| 盐边县| 石门县| 额敏县| 灌南县| 苏尼特右旗| 漳州市| 扎兰屯市| 县级市| 新竹市| 西藏| 汕头市| 南安市| 儋州市| 株洲市| 长宁区| 张家界市| 建宁县| 灵武市| 保康县| 普兰县| 油尖旺区| 麻江县| 韶关市| 同仁县| 浦东新区| 乐安县|