当前位置: 首页 > 工具软件 > Spring Shell > 使用案例 >

06.SpringShell命令分组-@ShellCommandGroup

沈华皓
2023-12-01

当SpringShell应用中命令过多时, 我们就需要对命令进行归类分组. SpringShell 提供了四种分组方式.

1. 命令分组方式

1.1 命令级别分组

声明命令时, 直接使用group属性指定命令所属组.

@ShellMethod(value = "计算两个整数的除法", group = "calculator")
public int div(int a, int b) {
    return a/b;
}

1.2 类级别分组

命令所在类添加@ShellCommandGroup注解, 该注解只有一个属性就是组名.

@ShellComponent
@ShellCommandGroup("welcome")
public class WelcomeCommand {
}

1.3 包级别分组

在包下创建package-info.java 类

@org.springframework.shell.standard.ShellCommandGroup("package-cmds")
package org.zongf.learn.spring.shell.cmd;

1.4 默认分组

默认情况下, spring 会将所有命令所属组设置为命令所在类组中, 组名为"类名 Commands".

2. 命令分组优先级

命令优先级: 命令级别分组 > 类级别分组 > 包级别分组 > 默认分组.

  • 若声明命令时使用group属性设置了分组, 那么命令分组为group属性指定的组.
  • 否则, 若命令所在类使用@ShellCommandGroup设置了类分组, 那么命令分组为该类定义的分组
  • 否则, 若该命令所在包使用@ShellCommandGroup设置了包分组, 那么命令分组为该包定义的分组
  • 否则, 该命令使用默认分组
 类似资料: