SpringBoot 系列 - 自定义 Banner

在启动 SpringBoot 的时候日志会打印一块由字符组成的 Spring 符号,这个是 SpringBoot 设计的默认 Banner。

如下图:

1
2
3
4
5
6
7
  .   ____          _            __ _ _
/\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \
(()\___ |'_ | '_| |'_ \/ _` | \ \ \ \
\\/ ___)| |_)| | | | | || (_| |) ) ) )
'|____| .__|_| |_|_| |_\__, | / / / /
=========|_|==============|___/=/_/_/_/
:: Spring Boot :: (v1.4.2.RELEASE)

其实也可以自定义我们自己喜欢的 Banner 到我们的项目中。

SpringBoot 是按如下顺序寻找 Banner 的(具体寻找的源码参见:SpringApplicationBannerPrinter.getBanner):

  1. 依次在 Classpath 下找文件 banner.gif、banner.jpg、banner.png,先找到谁就用谁。

  2. 继续 Classpath 下找 banner.txt,或者你有定义配置项:banner.location,会去 Classpath 下找这个配置值的文件。

  3. 上面都没有找到的话,用默认的 SpringBootBanner。

所以最简单的,就是在 resources 目录下建个 banner.txt 文件,里面保存需要打印的内容。

这里推荐一个网站:http://patorjk.com/software/taag,可以在线生成字符画。
比如:Hello World 生成为:

1
2
3
4
5
6
 _    _      _ _        __          __        _     _ 
| | | | | | | \ \ / / | | | |
| |__| | ___| | | ___ \ \ /\ / /__ _ __| | __| |
| __ |/ _ \ | |/ _ \ \ \/ \/ / _ \| '__| |/ _` |
| | | | __/ | | (_) | \ /\ / (_) | | | | (_| |
|_| |_|\___|_|_|\___/ \/ \/ \___/|_| |_|\__,_|

SpringBoot 还支持在文件中加入一些变量,如:

  • ${AnsiColor.BRIGHT_RED}:设置控制台中输出内容的颜色

  • ${application.version}:用来获取 MANIFEST.MF 文件中的版本号

  • ${application.formatted-version}:格式化后的 ${application.version} 版本信息

  • ${spring-boot.version}:Spring Boot 的版本号

  • ${spring-boot.formatted-version}:格式化后的 ${spring-boot.version} 版本信息

也可以自定义 Banner 的打印模式,默认是在控制台打印,如果在生产环境中,日志都是打印在文件中的话就看不到了。方法如下,修改启动类 Application.java 如下:

1
2
3
4
5
6
7
8
9
@SpringBootApplication
public class Application {

public static void main(String[] args) {
SpringApplication springApplication = new SpringApplication(Application.class);
springApplication.setBannerMode(Banner.Mode.LOG); // 日志方式
springApplication.run(args);
}
}

最后,奉上程序员必备 Banner:佛祖保佑,永不宕机,永无 BUG。^_^

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24


_ooOoo_
o8888888o
88"."88
(| ^_^ |)
O\ = /O
____/`---'\____
.' \\| |// `.
/ \\||| : |||// \
/ _||||| -:- |||||- \
| | \\\ - /// | |
| \_| ''\---/'' | |
\ .-\__ `-` ___/-. /
___`. .'/--.--\ `. . ___
."" '< `.___\_<|>_/___.' >'"".
| | : `- \`.;`\ _ /`;.`/ - ` : | |
\ \ `-. \_ __\ /__ _/ .-` / /
========`-.____`-.___\_____/___.-`____.-'========
`=---='
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
^ 佛祖保佑 永不宕机 永无BUG ^
^ SpringBoot: ${spring-boot.version} ^
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^