美文网首页
11.SpringShell自定义启动信息

11.SpringShell自定义启动信息

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

    SpringShell 应用启动时, 默认会输出Spring Shell 的启动信息. 对于一个专业的shell来讲, 输出Spring相关的启动信息, 肯定是不合适的, 我们需要输出我们系统相关的信息.

    1. SpringShell 默认启动信息

    SpringShell 的启动信息一共包括三部分: SpringBoot banner, SpringBppt启动类日志, shell命令提示符.

    # SpringBoot banner
      .   ____          _            __ _ _
     /\\ / ___'_ __ _ _(_)_ __  __ _ \ \ \ \
    ( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
     \\/  ___)| |_)| | | | | || (_| |  ) ) ) )
      '  |____| .__|_| |_|_| |_\__, | / / / /
     =========|_|==============|___/=/_/_/_/
     :: Spring Boot ::        (v2.1.2.RELEASE)
    
    # SpringBooot 启动类日志
    2019-01-25 16:05:59.260  INFO 14751 --- [           main] o.z.l.s.shell.SpringShellApplication     : Starting SpringShellApplication v0.0.1-SNAPSHOT on zongf-E570 with PID 14751 (/data/idea/learn-spring/spring-shell/target/spring-shell-0.0.1-SNAPSHOT.jar started by zongf in /data/idea/learn-spring/spring-shell/target)
    2019-01-25 16:05:59.265  INFO 14751 --- [           main] o.z.l.s.shell.SpringShellApplication     : No active profile set, falling back to default profiles: default
    2019-01-25 16:06:00.561  INFO 14751 --- [           main] o.z.l.s.shell.SpringShellApplication     : Started SpringShellApplication in 1.79 seconds (JVM running for 2.263)
    
    # shell 命令提示符
    shell:>
    

    2. 自定义启动信息

    对于SpringShell 应用默认的三部分启动信息, 我们需要分别进行处理.

    2.1 自定义banner

    • 由于SpringShell 应用本身就是一个SpringBoot 应用, 因此借助于SpringBoot应用自定义Banner方案即可实现.
    • 修改SpringBoot应用banner 只需要在resources文件夹中添加banner.txt文件即可, 可以自定义banner内容, 样式, 颜色等, 具体文件内容格式非本博客核心内容, 故笔者不在此详述.
    • 笔者指定banner 内容, 字体颜色, 版本号等信息.
    • 文字banner生成网站:http://patorjk.com/software/taag/#p=display&f=Slant&t=MYSHELL
    ${AnsiColor.BRIGHT_YELLOW} ${AnsiStyle.BOLD}
    Welcom to :
        __  _____  _______ __  __________    __
       /  |/  /\ \/ / ___// / / / ____/ /   / /
      / /|_/ /  \  /\__ \/ /_/ / __/ / /   / /
     / /  / /   / /___/ / __  / /___/ /___/ /___
    /_/  /_/   /_//____/_/ /_/_____/_____/_____/
    
    Version: ${application.version}
    Author: zongf
    Date: 2019-01-26
    
    

    2.2 自定义系统日志

    SpringBoot启动类日志级别为info, 我们只需要将启动类日志提升为warn即可. 直接修改application.yml 文件即可. 笔者修改为:

    # pattern 并没有实际用处, 这是笔者测试时用的.
    logging:
      pattern:
        console: "%date{yyyy-MM-dd HH:mm:ss.SSS}[%level][%thread]-%msg%n"
      level:
        org.zongf.learn.spring.shell.SpringShellApplication: warn
    

    2.3 自定义命令提示符

    SpringShell 自定义命令提示符在笔者之前的博客中已经提及了, 新增自定义命令提示符组件即可.

    @Component
    public class CustomPromptProvider implements PromptProvider {
    
        @Override
        public AttributedString getPrompt() {
    
            // 获取主机名称
            String hostName = getHostName();
    
            // 设置命令提示符文字
            String promot = "spring@" + hostName + "> ";
    
            // 设置命令提示符字体样式
            AttributedStyle promotStyle = AttributedStyle.BOLD.foreground(AttributedStyle.GREEN);
    
            // 返回命令提示符
            return new AttributedString(promot, promotStyle);
        }
    
        /**
         * @Description: 获取主机名称
         * @return: String 主机名称
         * @author: zongf
         * @time: 2019-01-26 08:58:45
         */
        private String getHostName(){
            String hostName = "";
            try {
                InetAddress inetAddress = InetAddress.getLocalHost();
                hostName = inetAddress.getHostName();
            } catch (UnknownHostException e) {
                e.printStackTrace();
            }
            return hostName;
        }
    }
    

    3. 启动SpringShell 应用

    重新打包后启动应用, 会发现启动信息完全实现了定制化.

    $ ./bin/spring-shell.sh
    
    Welcom to :
        __  _____  _______ __  __________    __
       /  |/  /\ \/ / ___// / / / ____/ /   / /
      / /|_/ /  \  /\__ \/ /_/ / __/ / /   / /
     / /  / /   / /___/ / __  / /___/ /___/ /___
    /_/  /_/   /_//____/_/ /_/_____/_____/_____/
    
    Version: 0.0.1-SNAPSHOT
    Author: zongf
    Date: 2019-01-26
    
    
    spring@zongf-E570> add 1 2
    3
    
    

    相关文章

      网友评论

          本文标题:11.SpringShell自定义启动信息

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