美文网首页
06.SpringShell命令分组-@ShellCommand

06.SpringShell命令分组-@ShellCommand

作者: Java扫地僧 | 来源:发表于2019-01-29 11:23 被阅读0次

    当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设置了包分组, 那么命令分组为该包定义的分组
    • 否则, 该命令使用默认分组

    相关文章

      网友评论

          本文标题:06.SpringShell命令分组-@ShellCommand

          本文链接:https://www.haomeiwen.com/subject/adtxsqtx.html