境配置到斷點調(diào)試的高效開發(fā)實踐)
1. 別再糾結(jié)了VS Code 跑 Spring Boot 完全可行很多習(xí)慣了 IDEA 的同學(xué)一聽到用 VS Code 寫 Java 就搖頭。我當(dāng)年也是這么想的直到有次在輕薄本上開會IDEA 啟動要兩分鐘風(fēng)扇轉(zhuǎn)得跟起飛似的臨時改個接口參數(shù)都要等半天。那之后我認(rèn)真把 VS Code 的 Java 環(huán)境折騰了一遍才發(fā)現(xiàn)它比我預(yù)想的成熟得多?,F(xiàn)在我的日常開發(fā)就是 VS Code 為主、IDEA 為輔特別是寫 Spring Boot 的小項目、Demo、接口測試VS Code 打開快、內(nèi)存占用小體感非常舒服。這篇文章就把我踩過的坑和最終跑通的完整流程分享出來。你會在里面看到完整的擴展安裝清單、環(huán)境變量配置、launch.json的寫法以及各種奇怪報錯的排查思路。無論你是剛接觸 Spring Boot 想找個輕量工具試試還是被 IDEA 的性能折磨得想換個環(huán)境這份實操筆記應(yīng)該都能幫到你。2. 為什么用 VS Code 跑 Spring Boot先解決“憑什么”的問題2.1 VS Code 不是玩具它的 Java 支持早就過了及格線先說點背景。VS Code 跑 Java 靠的是 Language Server Protocol語言服務(wù)器協(xié)議這套機制簡單理解就是編輯器本身不解析 Java 代碼它把“理解代碼”這件事外包給一個后臺進(jìn)程也就是語言服務(wù)器。微軟和 Red Hat 合作的 Java Extension Pack 里核心就是 Red Hat 開源的 Java Language Server。這個服務(wù)器負(fù)責(zé)代碼補全、定義跳轉(zhuǎn)、引用查找、錯誤提示這些功能代替了 IDEA 里那一大坨索引和分析引擎。有一個最常見的誤解我必須澄清很多人以為 VS Code 寫 Java 只是“能打開文件看看”實際上只要你把擴展裝對、JDK 配好它的補全、重構(gòu)、調(diào)試能力和 IDEA 的差距遠(yuǎn)沒有想象中那么大。我實測過一個中型 Spring Boot 項目十幾個實體類加幾十個 ControllerVS Code 的跳轉(zhuǎn)和補全速度甚至比 IDEA 還快——因為 IDEA 索引大項目時會有明顯的延遲而 VS Code 按需加載。2.2 適合用 VS Code 的場景和人群我個人的使用體感是這樣的如果你是做微服務(wù)、多模塊大型工程或者重度依賴 IDEA 的付費插件生態(tài)那 VS Code 短期還替代不了 IDEA。但如果是下面這些場景VS Code 反而是更好的選擇筆記本配置一般啟動項目頻繁受不了 IDEA 的內(nèi)存開銷。主要通過 Maven 構(gòu)建不需要太多圖形化的項目管理界面。項目里混雜了前端代碼、YAML 配置、Shell 腳本、Docker 文件VS Code 的多語言支持比 IDEA 更輕快。學(xué)習(xí) Spring Boot 階段想快速看到效果不想第一次就被 IDE 的復(fù)雜配置勸退。有遠(yuǎn)程開發(fā)的習(xí)慣喜歡利用遠(yuǎn)程 SSH 插件直接改服務(wù)器上的代碼。另外說個冷知識點VS Code 對 Maven 多模塊項目的支持其實做得不錯。只要安裝了 Maven for Java 擴展它就能識別項目的模塊結(jié)構(gòu)在側(cè)邊欄里直接展示每個模塊的依賴關(guān)系。對于聚合工程來說這個功能完全夠用了。3. 環(huán)境準(zhǔn)備裝齊三件套少走一半彎路3.1 JDK版本選不對后面全是淚Spring Boot 3.x 要求 Java 17 起步Spring Boot 2.x 用 Java 8 或 11 都行。我的建議是直接裝 JDK 17因為它是當(dāng)前 Spring Boot 3 的主流版本而且絕大多數(shù)國內(nèi)公司的生產(chǎn)環(huán)境已經(jīng)切換到 17 了。如果你有老項目必須用 JDK 8也可以在 VS Code 里指定 Java 運行時版本這個后面會講。安裝完 JDK 記得把環(huán)境變量配好。Windows 下要新建JAVA_HOME指向 JDK 的安裝根目錄然后在Path里加上%JAVA_HOME%\bin。macOS 和 Linux 則是在~/.zshrc或~/.bashrc里加export JAVA_HOME$(/usr/libexec/java_home -v 17)這類配置有提示說這里的路徑參數(shù)需要按實際 JDK 版本調(diào)整。這里有個非常容易踩的坑JDK 裝好了java -version也正常但 VS Code 里總是提示“Java runtime not found”。原因通常是 VS Code 的 Java 擴展在啟動時沒有正確讀取到環(huán)境變量。特別是 macOS 上GUI 應(yīng)用不會自動繼承終端里的 shell 配置。解決辦法是先用which java找到 JDK 路徑然后在 VS Code 的settings.json里手動指定下面會寫具體配置。3.2 Maven不是必須裝但建議裝Spring Boot 項目一般都用 Maven 構(gòu)建。你可以在本機安裝獨立 Maven也可以直接用項目自帶的mvnwMaven Wrapper。我的習(xí)慣是本地裝一份 Maven再配置阿里云鏡像加速依賴下載。原因很簡單mvnw首次運行時要下載對應(yīng)版本的 Maven網(wǎng)絡(luò)不好反而更慢。Maven 裝好后同樣要配置MAVEN_HOME或M2_HOME環(huán)境變量。不過 VS Code 的 Maven for Java 擴展會自己找 Maven找不到時再在設(shè)置里手動指定maven.executable.path就行。如果你用的是 IDEA 自帶的 Maven并且只想在 VS Code 里跑項目強烈建議把 Maven 單獨裝一份避免兩個工具搶同一個本地倉庫出現(xiàn)版本沖突。3.3 擴展安裝哪些必裝哪些裝了也是擺設(shè)打開 VS Code 的擴展面板搜索Java Extension Pack這是微軟官方出的集合包里面包含六個擴展。我建議第一次裝就裝這個集合包然后把下面這幾個留在啟用狀態(tài)擴展名作用必備程度Language Support for JavaJava 語言服務(wù)器負(fù)責(zé)補全、跳轉(zhuǎn)、錯誤提示必裝Debugger for JavaJava 調(diào)試器支持?jǐn)帱c、變量查看、調(diào)用堆棧必裝Maven for JavaMaven 項目管理和依賴解析必裝Project Manager for Java顯示項目結(jié)構(gòu)、類路徑、依賴樹建議裝Test Runner for Java單元測試運行和結(jié)果展示建議裝Spring Boot Extension Pack含 Spring Boot 工具、Spring Initializr 等跑 Spring Boot 必裝注意Spring Boot 項目還需要裝Spring Boot Extension Pack它里面包含了 Spring Boot 相關(guān)的配置提示、項目初始化向?qū)У?。不裝這個也能跑但裝了之后寫application.yml會有配置項補全Controller 里也會多出一些 Spring 特有的代碼提示體驗好很多。3.4 settings.json 里的關(guān)鍵配置裝完擴展第一次啟動 Java 項目時VS Code 會彈通知提示配置 Java Home。如果彈窗沒出現(xiàn)或者你想手動鎖定 JDK 版本可以打開命令面板CtrlShiftP輸入Preferences: Open Settings (JSON)把下面這段加進(jìn)去{ java.configuration.runtimes: [ { name: JavaSE-17, path: /usr/local/jdk-17.0.5, default: true } ], maven.executable.path: /usr/local/maven/bin/mvn, java.compile.nullAnalysis.mode: automatic, java.debug.settings.hotCodeReplace: auto, java.debug.settings.vmArgs: -Xmx512m }java.configuration.runtimes數(shù)組里可以同時配置多個 JDK 版本然后把其中一個設(shè)為default。如果你的機器上裝了 JDK 8 和 JDK 17想跑某個老項目時可以在這個配置里新增一條 JDK 8 的項然后在 VS Code 底部狀態(tài)欄點擊 Java 版本號快速切換。這個功能實測很穩(wěn)比在系統(tǒng)環(huán)境變量里來回改方便得多。4. 實操全過程從克隆項目到第一個請求返回4.1 導(dǎo)入項目的正確姿勢VS Code 打開 Spring Boot 項目有兩種方式。第一種是文件 - 打開文件夾直接選擇項目根目錄。第二種是在命令面板里執(zhí)行Java: Import Java Projects in Workspace。兩種方式最終都會讓 Language Server 掃描類路徑并生成依賴。我推薦用第一種簡單直接。打開后 VS Code 會自動檢測到pom.xml右下角彈出“Java projects need to be imported”之類的提示點擊確認(rèn)即可。如果你打開項目后發(fā)現(xiàn)側(cè)邊欄沒有 Maven 模塊視圖別慌找到資源管理器下方的“Maven”面板刷新一下項目就會開始解析依賴。首次解析會下載所有依賴包耗時取決于網(wǎng)絡(luò)速度和倉庫鏡像配置通常三五分鐘起步。有個細(xì)節(jié)值得留意項目導(dǎo)入階段VS Code 的 CPU 占用會飆升這是轉(zhuǎn)儲類路徑的正?,F(xiàn)象。不要在這個時候強行關(guān)閉窗口否則可能留下?lián)p壞的索引緩存導(dǎo)致后續(xù)一直報找不到類。4.2 首次運行 Spring Boot 項目兩種啟動方式方式一Maven 面板啟動在 VS Code 側(cè)邊欄找到 Maven 面板展開項目找到spring-boot:run這個命令它會自動執(zhí)行 Maven 的 Spring Boot 插件并啟動應(yīng)用。點擊后下方終端會輸出日志看到 “Started Application in X seconds” 就說明啟動成功了。這種方式適合剛接觸 Maven 的同學(xué)省心省力。但有一點要注意Maven 面板啟動時命令行參數(shù)和 VM 參數(shù)的調(diào)優(yōu)余地不大如果你需要自定義 JVM 參數(shù)還是得回到命令行方式。方式二終端里 mvn spring-boot:run我更推薦這種方式因為你能直觀看到完整的 Maven 輸出和日志mvn spring-boot:run如果你用了 Maven Wrapper則執(zhí)行./mvnw spring-boot:run啟動后訪問http://localhost:8080正常情況下你應(yīng)該能看到 Spring Boot 的默認(rèn)錯誤頁因為還沒配置任何接口或者你自己的首頁。如果你配置了 Spring Data JPA啟動日志里會看到 Hibernate 建表語句之類的輸出這些都是正常現(xiàn)象。這里補充一個很多人不知道的小技巧開發(fā)環(huán)境中你可以直接在啟動命令后面帶-Dspring-boot.run.profilesdev來指定使用application-dev.yml配置。比如mvn spring-boot:run -Dspring-boot.run.profilesdev如果你的項目有多個環(huán)境配置這個參數(shù)切換環(huán)境非常方便。4.3 重大更新VS Code 自帶的“運行”按鈕新版 VS Code 針對 Java 項目增加了運行按鈕支持。當(dāng)你打開 Spring Boot 項目時編輯器右上角會出現(xiàn)一個三角形運行圖標(biāo)。點擊它VS Code 會使用 Debugger for Java 擴展來啟動當(dāng)前主類。這個功能的好處是不依賴終端直接啟動并且會主動識別SpringBootApplication注解標(biāo)記的入口類。我用下來發(fā)現(xiàn)這個方式最大的優(yōu)點是啟動成功后控制臺里會顯示進(jìn)程 ID、端口號、占用 CPU/內(nèi)存等信息調(diào)試起來非常清晰。但從終端啟動的方式能讓你看到更完整的 Maven 構(gòu)建輸出各有利弊。我的習(xí)慣是日常寫代碼調(diào)試用運行按鈕需要看清楚構(gòu)建流程時用終端。4.4 配置數(shù)據(jù)源最容易被忽略的啟動坑Spring Boot 項目最常見的啟動失敗原因不是代碼寫錯而是數(shù)據(jù)源配置缺失或錯誤。如果你項目引入了spring-boot-starter-data-jpa或spring-boot-starter-jdbc但application.yml里沒有配置數(shù)據(jù)庫連接啟動時大概率會報錯提示無法確定 DataSource 類型。解決辦法有兩個在pom.xml里排除自動數(shù)據(jù)源配置exclusions exclusion groupIdorg.springframework.boot/groupId artifactIdspring-boot-starter-data-jpa/artifactId /exclusion /exclusions在application.yml里配置一個最小可用的數(shù)據(jù)源spring: datasource: url: jdbc:mysql://localhost:3306/test?useUnicodetruecharacterEncodingutf-8serverTimezoneAsia/Shanghai username: root password: 123456 driver-class-name: com.mysql.cj.jdbc.Driver第二種方式更優(yōu)雅因為你后面要連數(shù)據(jù)庫遲早要配置。注意MySQL 8 的驅(qū)動類名是com.mysql.cj.jdbc.Driver不是老版本的com.mysql.jdbc.Driver這個坑我踩過一次報錯信息提示會讓你折騰半天。5. 調(diào)試斷點不只是 IDEA 的專屬能力5.1 寫個最簡單的斷點調(diào)試實例VS Code 的 Java 調(diào)試能力經(jīng)常被低估其實它支持完整的斷點調(diào)試、變量查看、調(diào)用堆棧、熱替換。下面我通過一個具體例子演示怎么操作。假設(shè)你有這樣一個 ControllerRestController RequestMapping(/api/user) public class UserController { GetMapping(/{id}) public User getUser(PathVariable Long id) { User user new User(); user.setId(id); user.setName(測試用戶 id); return user; } }啟動調(diào)試模式后在return user;這一行左側(cè)點擊一下設(shè)置斷點然后瀏覽器訪問http://localhost:8080/api/user/1VS Code 會自動停在斷點處。左側(cè)面板會顯示所有局部變量的當(dāng)前值你可以展開user對象查看字段內(nèi)容也可以通過右上角的步進(jìn)按鈕逐行執(zhí)行。調(diào)試時按 F5 啟動、F10 單步跳過、F11 單步進(jìn)入、ShiftF5 退出這些快捷鍵和 IDEA 完全一致不需要重新學(xué)習(xí)記憶。5.2 launch.json自定義調(diào)試配置的精髓如果你需要自定義調(diào)試啟動方式比如指定環(huán)境變量、調(diào)整啟動端口、設(shè)置 Spring Boot 的 profile就需要寫launch.json文件。在 VS Code 里按 CtrlShiftD 打開調(diào)試面板點擊創(chuàng)建配置文件選擇 Java 環(huán)境VS Code 會自動生成一份基礎(chǔ)配置。我改造后的配置如下{ version: 0.2.0, configurations: [ { type: java, name: 啟動當(dāng)前Spring Boot應(yīng)用, request: launch, mainClass: com.example.demo.DemoApplication, projectName: demo, env: { SPRING_PROFILES_ACTIVE: dev, JAVA_OPTS: -Xmx512m }, args: --server.port8081 } ] }這個配置里mainClass指定入口類env里通過SPRING_PROFILES_ACTIVE環(huán)境變量指定當(dāng)前加載的 profile 為 devargs里用--server.port8081把服務(wù)端口改成 8081。保存后調(diào)試面板里會出現(xiàn)一個“啟動當(dāng)前Spring Boot應(yīng)用”的配置項點擊綠色播放按鈕即可啟動。看明白了嗎VS Code 的調(diào)試配置夠靈活吧其實不比 IDEA 的 Run Configuration 弱。遇到端口沖突時直接在args里改端口就行不用動代碼也不用改配置文件。5.3 熱替換的真相與限制Java 的 Hot Code Replace熱替換在 VS Code 里是默認(rèn)開啟的。也就是說調(diào)試運行狀態(tài)下修改方法體內(nèi)部的代碼保存后無需重啟就能生效。但要記住一個限制新增方法、修改方法簽名、修改類的繼承關(guān)系這類結(jié)構(gòu)性變更不支持熱替換只能重啟應(yīng)用。我建議你在開發(fā)階段把java.debug.settings.hotCodeReplace設(shè)為auto這樣 VS Code 可以在熱替換失敗時自動切換為“強制重啟”模式省掉手動重啟的麻煩。這個細(xì)節(jié)網(wǎng)上很少有人提到反正對我是很實用的。6. 多模塊 Spring Boot 項目的運行細(xì)節(jié)6.1 認(rèn)識 Maven 多模塊結(jié)構(gòu)真實項目里Spring Boot 很少是單模塊的。常見結(jié)構(gòu)是這樣parent-project ├── pom.xml (父POM管理依賴版本) ├── common-module (公共模塊實體類、工具類) ├── service-module (業(yè)務(wù)模塊Service、Mapper) └── web-module (Web模塊Controller、啟動類)在 VS Code 里打開父項目根目錄Maven for Java 擴展會識別出所有子模塊。每個模塊在 Maven 面板里都能展開并且 Language Server 會為每個模塊單獨記錄類路徑。這個功能是自動完成的不需要手動配置。6.2 運行子模塊的入口類如果你要啟動web-module模塊里的啟動類不用切換目錄直接在 VS Code 的 Java 項目中找到這個模塊右鍵運行主類即可?;蛘甙?F1 調(diào)出命令面板輸入Java: Run Main Class選擇對應(yīng)模塊的Application類。模塊之間的依賴關(guān)系在 VS Code 里也能看到。當(dāng)你修改了common-module里的實體類保存后引用該模塊的web-module會收到編譯錯誤或提示。這里有個注意點修改了公共模塊后需要讓 Maven 先安裝公共模塊到本地倉庫才能保證其他模塊的類路徑是最新的。命令行執(zhí)行mvn clean install -DskipTests如果漏掉這一步就會出現(xiàn)“明明改了代碼但另一個模塊報錯找不到方法”這種靈異事件。6.3 多模塊的項目導(dǎo)入耗時過長怎么辦項目模塊多了以后首次導(dǎo)入的耗時可能長達(dá)十幾分鐘。這是因為 Language Server 需要編譯整個項目圖。解決辦法有兩個給 Maven 配置國內(nèi)鏡像加快依賴下載速度。在 Maven 的settings.xml里加入阿里云鏡像。把用不到的測試依賴單獨建一個 profile避免全量解析。提到設(shè)置鏡像這個操作我順手貼一下配置片段放在 Maven 的conf/settings.xml里mirror idaliyunmaven/id mirrorOfcentral/mirrorOf namealiyun maven repository/name urlhttps://maven.aliyun.com/repository/public/url /mirror配好之后依賴下載速度會明顯提升。首次啟動的等待時間能縮短一大半。7. 常見問題與排查技巧踩過的坑逐個說7.1 啟動時報錯找不到或無法加載主類這個錯誤絕大多數(shù)情況下不是 VS Code 的問題而是項目的編譯輸出目錄和 Maven 的 target 目錄不一致。VS Code 使用自己的輸出目錄out來存放編譯結(jié)果如果你清除了編譯緩存或者用 IDEA 打開過項目有可能導(dǎo)致 classpath 混亂。最直接的解決辦法是mvn clean compile然后回到 VS Code刪除所有輸出目錄workspace 存儲重新導(dǎo)入。在命令面板執(zhí)行Java: Clean Java Language Server Workspace這是清理工具實測能解決很多詭異的問題。執(zhí)行完會重載窗口重新構(gòu)建索引。7.2 明明沒寫錯誤但紅波浪線一直在飄這個問題通常是 Language Server 的狀態(tài)不同步導(dǎo)致的。Spring Boot 項目里application.yml中配置的屬性如果在代碼中引用了Language Server 有時會誤報“無法解析屬性”。我的排查經(jīng)驗是這樣的先確認(rèn) Maven 依賴是否下載完整缺依賴時 Language Server 會大量報錯。再確認(rèn) JDK 版本是否匹配 Spring Boot 版本要求。Spring Boot 3 用 JDK 8 跑編譯器會報版本錯誤。如果上面兩項都正常嘗試執(zhí)行命令Java: Reload Projects強制刷新類路徑。如果是配置屬性誤報可以給啟動類加ConfigurationPropertiesScan注解或者直接用Value注入Language Server 一般就不再紅波浪了。7.3 端口被占用Address already in use開發(fā)中最常見的啟動失敗原因。排查方式netstat -ano | findstr :8080 taskkill /F /PID 進(jìn)程號macOS/Linux 則是lsof -i :8080 kill -9 PID然后重新啟動。如果經(jīng)常遇到端口沖突可以在launch.json的args里固定一個不常用端口比如 8090。這樣能省掉每次改動配置文件的麻煩。7.4 Lombok 不生效代碼全是紅色VS Code 的 Java 擴展對 Lombok 的支持默認(rèn)是開啟的但偶爾會出現(xiàn)不生效的情況。檢查下面三個地方pom.xml中是否加了最新的 Lombok 版本。VS Code 窗口右下角是否提示安裝 Lombok 支持。運行命令mvn clean compile后觀察是否恢復(fù)正常。如果還是不生效在settings.json中添加如下配置java.lombok.version: 1.18.28, java.lombok.lombokPath: ~/.m2/repository/org/projectlombok/lombok/1.18.28/lombok-1.18.28.jar注意版本號要和pom.xml里的一致。設(shè)置完重啟 VS Code 即可。7.5 項目導(dǎo)入后 Spring 相關(guān)注解不識別出現(xiàn)Autowired、Service等注解標(biāo)紅但項目能正常編譯運行這種情況多數(shù)是 Language Server 對 Spring 擴展的加載出現(xiàn)了滯后。先看擴展面板里Spring Boot Extension Pack是否已啟用然后執(zhí)行Java: Reload Projects。如果還有問題把項目從工作區(qū)移除再重新加入通常就恢復(fù)了。7.6 控制臺輸出中文亂碼Windows 下比較常見。默認(rèn)編碼問題導(dǎo)致控制臺日志里的中文變成亂碼。解決辦法是在launch.json里給當(dāng)前的調(diào)試配置添加一個控制臺選項console: integratedTerminal, vmArgs: -Dfile.encodingUTF-8同時在settings.json里設(shè)置terminal.integrated.defaultProfile.windows: Command Prompt, terminal.integrated.shellArgs.windows: [/K, chcp 65001]這個方法我實測有效。如果用的是 Maven 命令啟動可以在.mvn/jvm.config文件中加入-Dfile.encodingUTF-8。8. 進(jìn)階建議讓 VS Code 真正成為日常主力8.1 善用命令面板效率翻倍VS Code 高度依賴快捷鍵和命令面板。開發(fā) Spring Boot 項目時高頻操作主要有這些CtrlShiftP輸入Java: Run Main Class快速啟動任意模塊的入口類。CtrlShiftP輸入Java: Reload Projects刷新類路徑依賴。CtrlShiftP輸入Spring Initializr: Create a Maven Project直接在當(dāng)前工作區(qū)生成一個全新的 Spring Boot 項目。CtrlShiftP輸入Java: Open Java Extension Pack查看所有 Java 擴展的詳細(xì)文檔。我見過太多人只用鼠標(biāo)點來點去不熟悉命令面板白白浪費了 VS Code 最強大的功能。8.2 擴展推薦好用到飛起的配置除了官方擴展之外下面這些擴展也值得裝EditorConfig for VS Code統(tǒng)一項目代碼風(fēng)格。SonarLint實時提示代碼質(zhì)量問題包括安全漏洞。YAMLapplication.yml文件的格式化、校驗、補全。Docker配合docker-compose.yml啟動本地中間件。GitLens查看代碼提交歷史、Git blame排查問題利器。注意擴展不是越多越好裝多了會拖慢 VS Code 啟動速度。每個擴展占用的內(nèi)存和解析時間會疊加所以建議只裝真正用得到的。8.3 元件的性能調(diào)優(yōu)VS Code 卡頓排查VS Code 本身占用內(nèi)存不大但運行 Java 語言服務(wù)器時內(nèi)存會漲到幾百 MB。如果項目很大建議在settings.json中限制 Java 語言服務(wù)器的堆內(nèi)存java.server.launchMode: Standard, java.server.vmargs: -Xmx1024m -XX:UseParallelGC另外VS Code 的 workspace 存儲目錄Windows 下是%APPDATA%\Code\User\workspaceStorage里塞滿了很多項目緩存時間長了會拖慢整體性能。建議定期清理這個目錄讓 VS Code 重新建立索引。我一般一個月清理一次清理之后明顯感覺輕快不少。8.4 遠(yuǎn)程開發(fā)另一種高效工作流如果你是在公司服務(wù)器上開發(fā)或者習(xí)慣用云主機跑應(yīng)用VS Code 的 Remote SSH 插件幾乎是神器。本地寫代碼遠(yuǎn)程服務(wù)器編譯運行所有依賴都裝在云端本地電腦不需要高性能硬件。具體流程安裝Remote - SSH擴展配置好 SSH 訪問信息連接遠(yuǎn)程主機然后在遠(yuǎn)程 VS Code 窗口里打開項目。遠(yuǎn)程環(huán)境下 Java 擴展一樣能用補全、調(diào)試、斷點全部支持只是代碼解析在云端完成。這種方式對筆記本用戶尤其友好電腦溫度會低很多。9. 一些操作心得和習(xí)慣建議在多次使用 VS Code 跑 Spring Boot 的過程中我總結(jié)了一些屬于自己的習(xí)慣這些都是慢慢摸索出來的并不代表最優(yōu)解僅供參考。第一我習(xí)慣給每個分支項目單獨設(shè)置一個 VS Code 窗口。Spring Boot 項目多分支切換時同一窗口內(nèi)重新加載類路徑很慢而新開窗口可以讓 Language Server 重新構(gòu)建索引不容易出現(xiàn)舊編譯信息干擾的問題。第二命令行啟動和調(diào)試啟動交替使用。日常驗證代碼邏輯時我更傾向直接點擊運行按鈕快速啟動需要分析依賴、查看構(gòu)建細(xì)節(jié)時切到終端執(zhí)行mvn spring-boot:run -X查看 Maven 的調(diào)試輸出。-X參數(shù)會輸出 Maven 的完整調(diào)試日志排查依賴沖突時非常有用。第三關(guān)于斷點調(diào)試我習(xí)慣在 Controller 的入口和關(guān)鍵業(yè)務(wù)方法各打一個斷點再配合 VS Code 的變量面板查看數(shù)據(jù)變化。遇到問題時先從調(diào)用棧底部往上定位大部分 bug 都能在半小時內(nèi)解決。第四是事件日志習(xí)慣。Spring Boot 的啟動日志默認(rèn)包含很多 debug 信息開發(fā)時不需要每次都全量輸出。建議在application.yml里把logging.level設(shè)置為合適的級別比如只打印項目包名下的 INFO 日志其他第三方庫保持 WARN這樣日志清爽很多。說到底工具終歸是工具。IDEA 很強大VS Code 很輕量誰也不必替代誰。如果你還在猶豫要不要換我的建議是先拿一個小項目試試跑通一個完整的 Spring Boot CRUD 流程你自然會有答案。