Spring Boot启动banner定制的步骤详解
作者:杨高超 发布时间:2023-03-04 19:30:20
前言
爱美之心人皆有之,在 unix 和 linux 命令行环境下工作的闷骚程序员们可能也觉得命令行太单调了,而是他们就发明了在命令行下采用 ansii 字符输出各种图形的方式。这就是命令行下的 banner了,类似下面这样的
还有一些更闷骚的程序员甚至搞出了动态的 banner。例如在 linux(CentOS) 下执行下面的命令安装软件 sl
sudo yum install sl
完成后,在命令行输入一个 sl -a 命令,就会看到一个小火车喷着浓烟,从右至左开过屏幕,上面还有两个小人在欢呼雀跃。
在 SpringBoot 启动的时候,首先在命令行上会打印出如下的信息:
这就是 SpringBoot 的默认 banner。这个 启动 banner 是可以进行定制的。具体内容来自SpringBoot 官方文档
SpringBoot 文本 Banner 定制
第一种定制 SpringBoot 的方式是编辑一个 banner.txt 文件,然后在里面输入要在 banner 里面显示的内容,最后把这个文件存放到 classpath 路径里面就可以了。这里我们放到 resource 目录下。
一般为了显示效果,我们会将要显示的内容转换成为 ansii 的艺术字的形式。例如我想要在 banner 中显示 HELLO,GRACE,直接输入这个文本到文件中,显示效果是不好的,我们要通过一个文本转 ansii 艺术字的工具来转换一下。
把下面的 ansii 字符拷贝到 banner.txt 文件中。然后启动 SpringBoot ,启动 banner 就变成下面这个样子
在 banner.txt中,除了直接输入的 ansii 字符以外,还支持环境变量的配置。例如用 ${spring-boot.version} 来指代 SpringBoot 的版本。新的 banner.txt 内容变成
启动后的 banner 如下所示
支持的变量列表参考SpringBoot 官方文档
SpringBoot 图片 Banner 定制
如果觉得这种文本的启动 banner 不够炫酷,我们还可以将公司的 logo 或者产品的 logo 图片设置为启动的 banner 。当然不是把图片显示在命令行中,而是解析图片的像素,然后同 ansii 的方式给输出到命令行中。
图片的 banner 支持 gif 、png、jpeg 格式的图片。使用的时候,选用合适的图片,然后将图片名字改成 banner,然后和文字的 banner.txt 文件一样,放到 resource ,目录下即可。
例如,我们将一个如下的 jpeg 格式的微博 logo 改名为 banner.jpg 文件放到 resource 目录下
然后程序启动的 banner 就变成下面的样子。
如果在 classpath 中既有 banner.txt 文件,又有 banner 的图片文件,SpringBoot 会先显示图片 banner ,然后再显示文本的 banner。
来源:https://juejin.im/post/5a9ff0576fb9a028d4442330


猜你喜欢
- SpringBoot 如何进行参数校验在日常的接口开发中,为了防止非法参数对业务造成影响,经常需要对接口的参数做校验,例如登录的时候需要校验
- 1.概述项目中经常会遇到一个应用需要访问多个数据源的情况,本文介绍在SpringBoot项目中利用SpringDataJpa技术如何支持多个
- forward_list 概述forward_list 是 C++ 11 新增的容器,它的实现为单链表。forward_list 是支持从容
- 现在很多android的应用都采用底部导航栏的功能,这样可以使得用户在使用过程中随意切换不同的页面,现在我采用TabHost组件来自定义一个
- 1 引入 pom 包<dependency> <groupId>io.github.res
- MongoDB 是一个基于分布式文件存储的数据库。由 C++ 语言编写。旨在为 WEB 应用提供可扩展的高性能数据存储解决方案。MongoD
- Java SSM框架即指Spring+SpringMVC+MyBatis的简称,框架集由Spring、MyBatis两个开源框架整合而成(S
- 解锁、唤醒屏幕用到KeyguardManager,KeyguardLock,PowerManager,PowerManager.WakeLo
- 什么是Run Dashboard当springcloud的服务有多个时,管理多个服务的启动使用run会不好管理,这样我们就可以使用Run D
- 本文实例讲述了C#检测是否有u盘插入的方法。分享给大家供大家参考。具体如下:该C#代码可监控是否有u盘插入,同时可以监控其它驱动器的变化us
- 本文实例为大家分享了Java网络编程TCP程序设计的具体代码,供大家参考,具体内容如下[1] TCP编程的主要步骤客户端(client):1
- 一、准备工作mybatis-plus作为mybatis的增强工具,它的出现极大的简化了开发中的数据库操作,但是长久以来,它的联表查询能力一直
- 目标:了解Swagger的作用和概念了解前后端分离在springBoot中集成SwaggerSwagger简介前后端分离VUE+spring
- 一.前提1.栈的内存原理图2.JVM是怎么运行方法的???1.在运行阶段的时候,classLoader类加载器会把class文件中方法对应的
- spring task和线程池的研究最近因工作需求,研究了一下spring task定时任务,和线程池,有了一定收获,记录一下涉及如下内容1
- * 其实就是java.lang.reflect.Proxy类动态的根据您指定的所有接口生成一个class byte,该class会继承P
- 发现问题:问题如图所示,在eclipse中开启tomcat服务器时报错:端口已被占用。这是因为在tomcat开启的状态下,eclipse异常
- Java排序 - DualPivotQuicksort这里描述 leftmost = true 的情况,也就是会从数组的开始一直排序到数组的
- 初学java,单个的接触有点迷糊,所以总结下他们的关系一、关系Collection--List:以特定顺序存储--ArrayList、Lin
- 这篇文章向大家分享了几段代码,主要是关于Thread+IO文件的加密解密,下面看看具体代码:加密启动线程package com.hz.sub