美文网首页
09.SpringShell内置命令-禁用内置命令

09.SpringShell内置命令-禁用内置命令

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

    SpringShell 2.0 共为我们提供了五个内置命令, 如果不想使用, 那么可以禁用内置命令. 笔者并不推荐修改SpringSell内置命令的默认行为, 但是不妨了解一下.

    1. 禁用所有内置命令

    禁用所有内置命令, 可以直接修改maven依赖, 不引入内置命令的包即可. 需要注意的是, 这种方式连程序退出命令也会禁用, 只能通过杀进程方式停止应用.

    <dependency>
        <groupId>org.springframework.shell</groupId>
        <artifactId>spring-shell-starter</artifactId>
        <version>2.0.0.RELEASE</version>
        <!-- 不引入任何内置命令-->
        <exclusions>
            <exclusion>
                <groupId>org.springframework.shell</groupId>
                <artifactId>spring-shell-standard-commands</artifactId>
            </exclusion>
        </exclusions>
    </dependency>
    

    2. 禁用特定内置命令

    禁用特定的内置命令, 可以通过设置SpringBoot 应用启动参数来实现, 可以写死在应用中, 也可以启动应用时指定. 笔者直接写死在应用中.

    2.1 修改应用启动类

    @SpringBootApplication
    public class SpringShellApplication {
    
        public static void main(String[] args) {
    
            // 指定禁用内置命令列表
            String[] disableCmds = new String[]{
                    "--spring.shell.command.clear.enabled=false",
                    "--spring.shell.command.stacktrace.enabled=false"
            };
    
            // 重新拼接启动参数
            String[] fullArgs = StringUtils.concatenateStringArrays(args, disableCmds);
    
            // 启动应用
            SpringApplication.run(SpringShellApplication.class, fullArgs);
        }
    }
    

    2.2 查看所有内置命令

    通过help查看内置命令, 会发现内置命令缺少了stacktrace 和 clear命令.

    shell:>help
    AVAILABLE COMMANDS
    
    Built-In Commands
            exit, quit: Exit the shell.
            help: Display help about available commands.
            script: Read and execute commands from a file.
    shell:>clear
    No command found for 'clear'
    shell:>stacktrace
    No command found for 'stacktrace'
    

    相关文章

      网友评论

          本文标题:09.SpringShell内置命令-禁用内置命令

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