10. Spring Shell

有的时候创建命令行应用程序可能很有用,例如与项目的 REST API 交互,或者使用本地文件内容。

Spring Shell,可以和 SpringBoot 一起制作一款命令行工具。可轻松构建一个功能完整的 Shell (又名命令行)应用程序。

特性

Spring Shell 的特性包括

  • 一个简单的、注释驱动的编程模型,用于提供自定义命令
  • 使用 Spring Boot 自动配置功能作为命令插件策略的基础
  • 选项卡完成、彩色化和脚本执行
  • 自定义命令提示符、 shell 历史文件名、结果处理和错误
  • 基于领域特定条件的命令动态启用
  • 与 bean 验证 API 的集成
  • 已经内置的命令,如清晰的屏幕,华丽的帮助,退出
  • ASCII 艺术表格,具有格式化、对齐、花哨的边框等。

@ShellComponet: 声明将此类注册为 spring 的一个脚本组件

@ShellMethod 用于声明一个方法为 Shell 命令, 默认命令名称为方法名, 命令所属分组为方法所在类类名, 可以通过自定义属性来做调整. 默认情况下, SpringShell 会将方法名作为命令名, 当方法名为驼峰方式时, SpringShell 会自动替换为用-分隔的命令. 比如说 connectOracle 方法会被定义为connect-oracle 命令.

@ShellMethod 常用属性
value: 命令注释, 通过 help 查看命令时显示内容
key: 指定命令别名, 可以同时定义多个别名. 当使用 key 定义别名之后, 方法名则不再是别名.
prefix: 指定名称参数前缀, 默认为–
group: 指定命令所属组, 默认分组为类名

参考

Spring Shell Reference Documentation
https://docs.spring.io/spring-shell/docs/3.0.0/docs/index.html#what-is-spring-shell

spring-shell_Java 程序源的博客-CSDN博客
https://blog.csdn.net/zongf0504/category_8644327.html