Spring Boot 宣佈移除 run 命令,真讓我猝不及防。。。

来源:https://www.cnblogs.com/javastack/archive/2023/09/06/17682760.html
-Advertisement-
Play Games

大家好,我是棧長。 昨天有粉絲反饋棧長《[Spring Boot 核心技術課](https://mp.weixin.qq.com/s/hJwHvmalVWJObyVkytfdsA)》中的一個問題: ![](https://img2023.cnblogs.com/other/1218593/20230 ...


大家好,我是棧長。

昨天有粉絲反饋棧長《Spring Boot 核心技術課》中的一個問題:

Spring Boot CLI 命令行工具中的 run 命令找不到了?

這是什麼鬼?後面為你揭曉原由!

Spring Boot CLI 基本介紹

Spring Boot CLI 全稱即:Spring Boot Command-Line Interface,是一個構造 Spring Boot 項目命令行工具,可用於從 start.spring.io 網站構建新項目或用來密碼加密。

它可以運行 Groovy 腳本,它也是 JVM 系語言,擁有和 Java 類似的語法,但它比 Java 要無比簡潔,無需太多冗餘的項目結構配置代碼,從而可以快速構建項目。

Spring Boot 並不一定需要 Spring Boot CLI,但有了 Spring Boot CLI ,可以在無需 IDE 的情況下快速啟動基於 Spring 的應用程式。

Spring Boot CLI 提供了很多快捷功能,其中一個亮點就是可以支持運行 Groovy 腳本,以快速構建 Spring 項目。

比如,棧長在桌面創建了一個簡單的 app.groovy 腳本文件:

@RestController
class ThisWillActuallyRun {

    @RequestMapping("/hi")
    String home() {
       "Hello Spring Boot!"
    }

}

然後使用 Spring Boot CLI 運行命令就能直接運行了:

$ spring run app.groovy
Resolving dependencies....................

.   ____          _            __ _ _
/\\ / ___'_ __ _ _(_)_ __  __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
\\/  ___)| |_)| | | | | || (_| |  ) ) ) )
'  |____| .__|_| |_|_| |_\__, | / / / /
=========|_|==============|___/=/_/_/_/
:: Spring Boot ::                

...

...Started application in 2.544 seconds (JVM running for 4.453)
...Tomcat started on port(s): 8080 (http) with context path ''
...Started application in 2.544 seconds (JVM running for 4.453)

如上啟動日誌,埠啟動在 8080,就像啟動正常的 Java 應用程式一樣,因為 Groovy 本身就是 JVM 系編程語言,在 Java 中創建一個介面可能需要一大堆的項目配置,而 Groovy 僅僅只需要一個腳本就夠了。

Spring Boot CLI 移除 run 命令

棧長翻閱了大量官方資料,對比 Spring Boot 各個版本的官方文檔,發現在 Spring Boot 3.0.2 版本中,移除了關於 Spring Boot CLI 可運行 Groovy 腳本的描述,如下圖所示。

Spring Boot 2.7.x 文檔:

Spring Boot 3.0.2 文檔:

雖然 Spring Boot 3.0.1 文檔中還有相關描述,但是經過測試,實際上已經在 3.0.0 版本中移除了 run 命令,並且沒有新的替換命令,也就是說 Spring Boot 3.0+ 不再支持運行 Groovy 腳本了。

我又找到官方倉庫中的以下參考資料:

https://github.com/spring-projects/spring-boot/issues/33482

這讓我想到了 Spring Cloud 2022 這個版本,它移除了對 Spring Cloud CLI 的支持,2022 版本一共移除了以下三個模塊的依賴:

  • spring-cloud-sleuth(已移除)
  • spring-cloud-cloudfoundry(已移除)
  • spring-cloud-cli(已移除)

另外,據棧長所知,Spring Boot CLI 命令行雖然很犀利,但實際開發工作中確很少使用到,沒什麼人用還要持續維護,所以官方決定精簡該命令行工具就不覺得奇怪了。

Spring Boot 3.0.0 里程碑版本還能用,到了正式版就移除了,真是有點猝不及防。。

關於這點更新,Spring Boot 的版本更新文檔也沒有描述,棧長之前確實沒測試到,昨天棧長也把《Spring Boot 核心技術課》中的 Spring Boot CLI 內容做了相關更新:

最後,如果你還沒用過 Spring Boot,最後推薦下棧長的《Spring Boot 核心技術課》,基於最新 Spring Boot 3.x 主版本,持續更新,包括底層實現原理及代碼實戰,知識點非常齊全,助你快速打通 Spring Boot 的各個環節。

Spring Boot 最新最全的實戰代碼已上傳 Github:

https://github.com/javastacks/spring-boot-best-practice

好了,今天的分享就到這裡了,後續棧長也會繼續關註並分享更多的 Spring Boot 乾貨,關註公眾號Java技術棧第一時間推送。

版權聲明: 本文系公眾號 "Java技術棧" 原創,轉載、引用本文內容請註明出處,抄襲、洗稿一律投訴侵權,後果自負,並保留追究其法律責任的權利。

近期熱文推薦:

1.1,000+ 道 Java面試題及答案整理(2022最新版)

2.勁爆!Java 協程要來了。。。

3.Spring Boot 2.x 教程,太全了!

4.別再寫滿屏的爆爆爆炸類了,試試裝飾器模式,這才是優雅的方式!!

5.《Java開發手冊(嵩山版)》最新發佈,速速下載!

覺得不錯,別忘了隨手點贊+轉發哦!


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 讓 Java 代碼直接在 Nginx 上運行?這麼有趣的功能,隨本文一起來實戰體驗吧,圖文並茂,一定能成功的那種實戰 ...
  • Starter是SpringBoot的四大核心功能特性之一,除此之外,SpringBoot還有自動裝配,Actuator監控等特性 SpringBoot裡面的這些特性,都是為了讓開發者在開發基於Spring生態下的企業級應用時,只需要關係業務邏輯,減少對配置和外部環境的依賴 ...
  • Linux通常都附帶Python環境,但是Linux附帶的大多數Python都是2.7.5版本。如果我們想使用Python3或者Anaconda3,最好安裝一個新的Python3環境,但不要嘗試刪除Python2,避免引起不必要的麻煩 ...
  • # 【python技巧】替換文件中的某幾行 ## 1. 背景描述 最近在寫一個後端項目,主要的操作就是根據用戶的前端數據,在後端打開項目中的代碼文件,修改對應位置的參數,因為在目前的後端項目中經常使用這個操作,所以簡單總結一下。 ``` 1. 文件路徑:./test.c 2. 文件內容 …… cas ...
  • 最近在公司項目上遇到程式運行時崩潰,也不好在log日誌中定位。查找了資料發現,谷歌的一個開源項目Breakpad,統一了這三平臺win、linux、mac生成dump的方式來捕捉崩潰。 大致研究了一下,主要依賴一個靜態庫和幾個頭文件,我這邊編譯出來放到網盤上大家自行使用。 鏈接: https://p ...
  • for迴圈用於多次執行特定的代碼塊,每次都可以使用不同的值。每次迴圈執行都稱為一次迭代。for迴圈可以包含最多三個語句: 語法 ```Go for 語句1; 語句2; 語句3 { // 每次迭代要執行的代碼 } ``` - 語句1:初始化迴圈計數器的值。 - 語句2:對每次迴圈迭代進行評估。如果評估 ...
  • ## Synchronized 本篇文章將圍繞synchronized關鍵字,使用大量圖片、案例深入淺出的描述CAS、synchronized Java層面和C++層面的實現、鎖升級的原理、源碼等 大概觀看時間17分鐘 可以帶著幾個問題去查看本文,如果認真看完,問題都會迎刃而解: 1、synchro ...
  • 小魚和魔法師繼續深入魔法森林。不久,他們來到了一個巨大的魔法石圈旁邊。石圈中心有一個閃閃發光的魔法水晶,周圍則是一些神秘的符號。但令人意外的是,水晶的旁邊還有一個巨大的石像怪,它的眼睛散髮著紅色的光芒,似乎正在守護著這片區域。 小魚好奇地問:“這是什麼地方?這些符號又是什麼意思?那個石像怪又是怎麼回 ...
一周排行
    -Advertisement-
    Play Games
  • 示例項目結構 在 Visual Studio 中創建一個 WinForms 應用程式後,項目結構如下所示: MyWinFormsApp/ │ ├───Properties/ │ └───Settings.settings │ ├───bin/ │ ├───Debug/ │ └───Release/ ...
  • [STAThread] 特性用於需要與 COM 組件交互的應用程式,尤其是依賴單線程模型(如 Windows Forms 應用程式)的組件。在 STA 模式下,線程擁有自己的消息迴圈,這對於處理用戶界面和某些 COM 組件是必要的。 [STAThread] static void Main(stri ...
  • 在WinForm中使用全局異常捕獲處理 在WinForm應用程式中,全局異常捕獲是確保程式穩定性的關鍵。通過在Program類的Main方法中設置全局異常處理,可以有效地捕獲並處理未預見的異常,從而避免程式崩潰。 註冊全局異常事件 [STAThread] static void Main() { / ...
  • 前言 給大家推薦一款開源的 Winform 控制項庫,可以幫助我們開發更加美觀、漂亮的 WinForm 界面。 項目介紹 SunnyUI.NET 是一個基於 .NET Framework 4.0+、.NET 6、.NET 7 和 .NET 8 的 WinForm 開源控制項庫,同時也提供了工具類庫、擴展 ...
  • 說明 該文章是屬於OverallAuth2.0系列文章,每周更新一篇該系列文章(從0到1完成系統開發)。 該系統文章,我會儘量說的非常詳細,做到不管新手、老手都能看懂。 說明:OverallAuth2.0 是一個簡單、易懂、功能強大的許可權+可視化流程管理系統。 有興趣的朋友,請關註我吧(*^▽^*) ...
  • 一、下載安裝 1.下載git 必須先下載並安裝git,再TortoiseGit下載安裝 git安裝參考教程:https://blog.csdn.net/mukes/article/details/115693833 2.TortoiseGit下載與安裝 TortoiseGit,Git客戶端,32/6 ...
  • 前言 在項目開發過程中,理解數據結構和演算法如同掌握蓋房子的秘訣。演算法不僅能幫助我們編寫高效、優質的代碼,還能解決項目中遇到的各種難題。 給大家推薦一個支持C#的開源免費、新手友好的數據結構與演算法入門教程:Hello演算法。 項目介紹 《Hello Algo》是一本開源免費、新手友好的數據結構與演算法入門 ...
  • 1.生成單個Proto.bat內容 @rem Copyright 2016, Google Inc. @rem All rights reserved. @rem @rem Redistribution and use in source and binary forms, with or with ...
  • 一:背景 1. 講故事 前段時間有位朋友找到我,說他的窗體程式在客戶這邊出現了卡死,讓我幫忙看下怎麼回事?dump也生成了,既然有dump了那就上 windbg 分析吧。 二:WinDbg 分析 1. 為什麼會卡死 窗體程式的卡死,入口門檻很低,後續往下分析就不一定了,不管怎麼說先用 !clrsta ...
  • 前言 人工智慧時代,人臉識別技術已成為安全驗證、身份識別和用戶交互的關鍵工具。 給大家推薦一款.NET 開源提供了強大的人臉識別 API,工具不僅易於集成,還具備高效處理能力。 本文將介紹一款如何利用這些API,為我們的項目添加智能識別的亮點。 項目介紹 GitHub 上擁有 1.2k 星標的 C# ...