Spring Boot启动banner定制的步骤详解

作者:杨高超 时间:2023-03-04 19:30:20 

前言

爱美之心人皆有之,在 unix 和 linux 命令行环境下工作的闷骚程序员们可能也觉得命令行太单调了,而是他们就发明了在命令行下采用 ansii 字符输出各种图形的方式。这就是命令行下的 banner了,类似下面这样的

Spring Boot启动banner定制的步骤详解

还有一些更闷骚的程序员甚至搞出了动态的 banner。例如在 linux(CentOS) 下执行下面的命令安装软件 sl


sudo yum install sl

完成后,在命令行输入一个 sl -a 命令,就会看到一个小火车喷着浓烟,从右至左开过屏幕,上面还有两个小人在欢呼雀跃。

在 SpringBoot 启动的时候,首先在命令行上会打印出如下的信息:

Spring Boot启动banner定制的步骤详解

这就是 SpringBoot 的默认 banner。这个 启动 banner 是可以进行定制的。具体内容来自SpringBoot 官方文档

SpringBoot 文本 Banner 定制

第一种定制 SpringBoot 的方式是编辑一个 banner.txt 文件,然后在里面输入要在 banner 里面显示的内容,最后把这个文件存放到 classpath 路径里面就可以了。这里我们放到 resource 目录下。

一般为了显示效果,我们会将要显示的内容转换成为 ansii 的艺术字的形式。例如我想要在 banner 中显示 HELLO,GRACE,直接输入这个文本到文件中,显示效果是不好的,我们要通过一个文本转 ansii 艺术字的工具来转换一下。

Spring Boot启动banner定制的步骤详解

把下面的 ansii 字符拷贝到 banner.txt 文件中。然后启动 SpringBoot ,启动 banner 就变成下面这个样子

Spring Boot启动banner定制的步骤详解

在 banner.txt中,除了直接输入的 ansii 字符以外,还支持环境变量的配置。例如用 ${spring-boot.version} 来指代 SpringBoot 的版本。新的 banner.txt 内容变成

Spring Boot启动banner定制的步骤详解

启动后的 banner 如下所示

Spring Boot启动banner定制的步骤详解

支持的变量列表参考SpringBoot 官方文档

SpringBoot 图片 Banner 定制

如果觉得这种文本的启动 banner 不够炫酷,我们还可以将公司的 logo 或者产品的 logo 图片设置为启动的 banner 。当然不是把图片显示在命令行中,而是解析图片的像素,然后同 ansii 的方式给输出到命令行中。

图片的 banner 支持 gif 、png、jpeg 格式的图片。使用的时候,选用合适的图片,然后将图片名字改成 banner,然后和文字的 banner.txt 文件一样,放到 resource ,目录下即可。

例如,我们将一个如下的 jpeg 格式的微博 logo 改名为 banner.jpg 文件放到 resource 目录下

Spring Boot启动banner定制的步骤详解

然后程序启动的 banner 就变成下面的样子。

Spring Boot启动banner定制的步骤详解

如果在 classpath 中既有 banner.txt 文件,又有 banner 的图片文件,SpringBoot 会先显示图片 banner ,然后再显示文本的 banner。

来源:https://juejin.im/post/5a9ff0576fb9a028d4442330

标签:springboot,启动,banner
0
投稿

猜你喜欢

  • C#操作注册表之Registry类

    2023-02-24 00:23:33
  • Java实现map转换成json的方法详解

    2022-09-09 12:26:03
  • Java性能优化之数据结构实例代码

    2022-01-21 14:46:02
  • Unity TextMeshPro实现富文本超链接默认字体追加字体

    2021-10-13 23:57:24
  • C#环形队列的实现方法详解

    2021-06-04 00:38:37
  • Intellij IDEA 最全超实用快捷键整理(长期更新)

    2022-07-15 02:37:48
  • 简单理解Java的垃圾回收机制与finalize方法的作用

    2023-02-04 01:49:37
  • Flutter 如何正确显示SnackBar

    2023-06-23 13:00:40
  • unity实现场景跳转

    2023-08-30 22:58:15
  • Android编程之蓝牙测试实例

    2022-06-09 13:59:53
  • 微信公众平台开发实战Java版之微信获取用户基本信息

    2023-06-02 23:05:50
  • C#调用7z实现文件的压缩与解压

    2021-06-12 16:12:48
  • Java中MyBatis Plus知识点总结

    2023-08-11 14:12:04
  • 浅析Android中build.gradle的实用技巧

    2022-05-03 15:15:40
  • 在Winform动态启动、控制台命令行的方法

    2021-11-02 05:11:07
  • Android仿微信微博多图展示效果

    2023-03-04 11:02:55
  • Java equals 方法与hashcode 方法的深入解析

    2022-03-05 19:20:15
  • winfrom 打印表格 字符串的封装实现代码 附源码下载

    2021-10-27 14:30:11
  • 设计模式系列之组合模式及其在JDK和MyBatis源码中的运用详解

    2022-12-27 12:56:57
  • java中set接口使用方法详解

    2023-03-15 06:10:12
  • asp之家 软件编程 m.aspxhome.com