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 頁面的輸出
  • 接受集合或陣列值的命令參數現在可以指定非預設的arity
  • 另一個長期以來被要求的功能,現在支援多行命令
  • 命令的開啟和關閉仍然受到支援,現在有更自然的程式設計模型,以及提供命令目前為何不可用的解釋能力

看看實際運作情況!

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

@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 社群中所有即將到來的活動。

查看全部