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,利用了自動配置和其他啟動功能。

內部架構現在使用可插拔模型來發現將哪些方法轉換為命令、如何將使用者輸入解析為引數值以及如何處理返回值。 這與 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 社群中所有即將舉行的活動。

檢視全部