流程组件
从 2.1.x 版本开始,一种新的组件模型提供了一种更简单的方法来为常见的使用场景创建更高层次的用户交互,例如以各种形式请求输入。这些通常只是纯文本输入或从列表中选择某项。
内置组件的模板位于 org/springframework/shell/component
类路径下。
内置组件通常遵循此逻辑:
-
进入用户输入的运行循环。
-
生成与组件相关的上下文。
-
渲染组件状态的运行时状态。
-
退出。
-
渲染组件状态的最终状态。
备注
Flow 提供了更好的界面来定义组件的流程,这更适合定义交互式命令流程。
小节总结
📄️ 组件渲染
您可以采用两种方式之一来实现组件渲染:完全编程方式或使用 ANTLR Stringtemplate。严格来说,有一个简单的 Function 渲染器接口,它将 Context 作为输入,并输出 AttributedString 列表。这使您可以在模板和代码之间进行选择。
📄️ 字符串输入
字符串输入组件要求用户提供简单的文本输入,如果内容包含敏感信息,可以选择性地对值进行掩码处理。以下示例展示了这一点:
📄️ 路径输入
路径输入组件要求用户提供一个路径,并提供有关该路径的附加信息。
📄️ 路径搜索
路径搜索组件要求提供基础目录进行扫描,并可选择性地提供搜索表达式。结果显示在一个单选列表中,用户可以在其中选择一个路径。可以使用 PathSearchConfig 来自定义组件行为。
📄️ 确认
确认组件要求用户进行简单的确认。它本质上是一个是非问题。
📄️ 单选
单选组件要求用户从列表中选择一个项目。它类似于一个简单的下拉框实现。下面的示例展示了这一点:
📄️ 多选
多选组件要求用户从列表中选择多个项目。下面的示例展示了这一点: