介紹 Spring Shell 2.0M1!

版本釋出 | Eric Bottard | 2017 年 9 月 18 日 | ...

我們很高興地宣佈 Spring Shell 2.x 的第一個里程碑版本!

歷時兩年打造,Spring Shell 2 是 Spring Shell 的完全重寫,利用了更新的元件(如 JLine 3)並採用了更好的模組化。Spring Shell 2 在構建時也考慮到了 Spring Boot,利用了自動配置和其他 Boot 功能。

現在的內部架構使用可插拔模型來發現哪些方法可以轉換為命令,如何將使用者輸入解析為引數值以及如何處理返回值。這與 Spring MVC 採取的方法非常相似,例如,它允許以以前不可能的方式擴充套件框架。Spring Shell 的使用者通常不會關心,他們只需處理新的“標準”命令 API 來定義他們的命令。

功能亮點

下面影片中突出顯示了一些新功能(請務必全屏播放),但這裡有更詳細的介紹

  • 現在支援長期請求的功能位置引數(甚至可以在一定程度上混合搭配)
  • 使用標準 Spring 轉換 API 允許重用許多現有轉換器,而 Shell 1 有其自己的專用方法
  • 基於 JLine 3 帶來出色的使用者體驗增強功能,例如使用 TAB 在補全建議之間導航
  • Bean 驗證 API 整合使命令更具表達力
  • 新的 help 命令比以前更有用,類似於 man 頁面的輸出
  • 接受集合或陣列值的命令引數現在可以指定非預設元數
  • 另一個長期請求的功能,現在支援多行命令
  • 仍然支援開啟和關閉命令,現在具有更自然的程式設計模型以及提供命令當前不可用原因的解釋的能力

實際操作!

下面的短影片展示了一些功能,使用了具有以下簽名的示例命令

@ShellMethod("Add an item to the current order.")
public String addItem(
 	@ShellOption(help = "the item reference") String item,
 	@ShellOption(help = "unit price") @Min(0) float price,
 	@ShellOption(help = "the number of items to add", defaultValue = "1") @Range(min = 1, max = 15) int qty
 ) { ... }

@ShellMethod("Submit the order for processing.")
public List<?> submitOrder() { ... }

下一步

這只是第一個里程碑,充滿了新功能。在接下來的幾周,我們計劃修復一些錯誤,完成編寫全面的參考文件並重構一些內部結構,從而在Spring One Platform上釋出 2.0.0.RELEASE 版本。

同時,請試用並提供反饋!

特別鳴謝

我要感謝 Florent BivilleCamilo Gonzalez,他們透過提供有用的想法和寶貴的時間,幫助我們實現了這次重寫!

獲取 Spring 新聞通訊

透過 Spring 新聞通訊保持聯絡

訂閱

領先一步

VMware 提供培訓和認證,助您加速進步。

瞭解更多

獲得支援

Tanzu Spring 提供 OpenJDK™、Spring 和 Apache Tomcat® 的支援和二進位制檔案,只需一份簡單的訂閱。

瞭解更多

即將舉行的活動

檢視 Spring 社群所有即將舉行的活動。

檢視所有