SpringBoot 自定义启动画面
我们启动项目的之后,会在控制台上看到类似下面的画面:
一般spring-boot项目启动时会有这么一个spring的字符banner,并不美观,那我们如何自定义呢?
自定 Banner
上面👆的截图信息就是 Banner
信息,我们可以在项目的 resources
下新建 banner.txt
来实现,比如:
// banner.txt
Jimmy
然后我们重新启动项目,则有:
获取属性
当然,我们可以获取项目的属性,通过 ${属性名}
来获取,比如:
${spring-boot.version}
获取的属性可以有:
「AnsiColor.BRIGHT_RED」 : 设置控制台中输出内容的颜色,具体参考
org.springframework.boot.ansi.AnsiColor
「application.version」 : 用来获取
MANIFEST.MF
文件的版本信息「application.formatted-version」 : 格式化后的
application.version
版本信息「spring-boot.version」 :
Spring Boot
的版本号「spring-boot.formatted-version」 : 格式化后的
sprin-boot.version
版本信息
设置颜色
刚才我们提到了 AnsiColor
可以设置控制台输出内容的颜色。那么,我们应该如何设置呢?
这很简单,只需要在这段文本前面加入 ${AnsiColor.BRIGHT_RED}
即可。添加的 「枚举类型」 颜色根据个人喜好更改~
// 颜色枚举值
public enum AnsiColor implements AnsiElement {
DEFAULT("39"),
BLACK("30"),
RED("31"),
GREEN("32"),
YELLOW("33"),
BLUE("34"),
MAGENTA("35"),
CYAN("36"),
WHITE("37"),
BRIGHT_BLACK("90"),
BRIGHT_RED("91"),
BRIGHT_GREEN("92"),
BRIGHT_YELLOW("93"),
BRIGHT_BLUE("94"),
BRIGHT_MAGENTA("95"),
BRIGHT_CYAN("96"),
BRIGHT_WHITE("97");
private final String code;
private AnsiColor(String code) {
this.code = code;
}
public String toString() {
return this.code;
}
}
实际操作
OK
,我们了解得差不多了,来实操一下。有两种在线工具可以快速生成ASCII:
Text to ASCII Art Generator 这是一个文字转ASCII码图案的工具,有很多工具的图案就是用这个生成的
Ascii Art Generator 这网站可以把图片转换成ASCII码图案,可以生成纯字符的,也可以生成带颜色字符的,并且可以生成一个html给你
然后在 banner.txt
上添加文本如下:
${AnsiColor.BRIGHT_BLUE}
____ ___ ______ __
/ __ )__ _|__ \/_ __/__ _____/ /_
/ __ / / / /_/ / / / / _ \/ ___/ __ \
/ /_/ / /_/ / __/ / / / __/ /__/ / / /
/_____/\__, /____//_/ \___/\___/_/ /_/
/____/
:: BoYuan @ By2Tech.com ::
:: spring-boot.version - ${spring-boot.version} ::
${AnsiColor.DEFAULT}
我们重新运行下项目,效果如下:
关闭 Banner
我们不想使用 Banner
,那么,我们在入口文件中进行关闭即可。
❝
PS,我这里以使用的 spring boot 版本3.1.2为例
❞
原先入口文件:
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class LaunchApplication {
public static void main(String[] args) {
SpringApplication.run(LaunchApplication.class, args);
}
}
上面代码其实可以写成这样:
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class LaunchApplication {
public static void main(String[] args) {
SpringApplication app = new SpringApplication(LaunchApplication.class);
app.run(args);
}
}
我们添加一行代码禁用 banner.txt
,更改后:
import org.springframework.boot.Banner;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class LaunchApplication {
public static void main(String[] args) {
SpringApplication app = new SpringApplication(LaunchApplication.class);
app.setBannerMode(Banner.Mode.OFF); // 设置 Banner 模式为关闭
app.run(args);
}
}
启动后,控制台就没有相关的 banner
信息了