1. 前言
开发SpringBoot项目的小伙伴应该会发现在程序运行的过程中控制台会打印如下图标:
. ____ _ __ _ _
/\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
\\/ ___)| |_)| | | | | || (_| | ) ) ) )
' |____| .__|_| |_|_| |_\__, | / / / /
=========|_|==============|___/=/_/_/_/
:: Spring Boot :: (v2.2.6.RELEASE)
Spring Boot启动的时候默认的banner是spring的字样,我们可以对banner进行设置:关闭打印baneer,修改banner样式等操作。
2. Banner设置
2.1 在Application启动类的main方法中设置
@SpringBootApplication
public class UserApplication {
public static void main(String[] args) {
SpringApplication springApplication = new SpringApplication(UserApplication.class);
/**
* Banner.Mode.OFF:关闭;
* Banner.Mode.CONSOLE:控制台输出,默认方式;
* Banner.Mode.LOG:日志输出方式;
*/
springApplication.setBannerMode(Banner.Mode.OFF);
springApplication.run( args);
}
}
2.2 修改banner.txt配置文件
在src/main/resouces下新建banner.txt,在文件中加入需要打印的信息。Spring Boot启动项目的时候就会优先启动这个文件中的内容。除了文本文件,你也可以添加一个banner.gif,banner.jpg或banner.png图片,或设置banner.image.location属性。图片会转换为字符画(ASCII art)形式,并在所有文本banner上方显示。
在banner.txt中可以使用如下占位符:
- ${AnsiColor.BRIGHT_YELLOW}:设置控制台中输出内容的颜色,可以自定义,具体参考org.springframework.boot.ansi.AnsiColor
- ${application.version}:用来获取MANIFEST.MF文件中的版本号,这就是为什么要在Application.java中指定 SpringVersion.class
- {application.formatted-version}:格式化后的{application.version}版本信息
- ${spring-boot.version}:Spring Boot的版本号。示例:2.2.6.RELEASE
- {spring-boot.formatted-version}:格式化后的{spring-boot.version}版本信息。示例:(v2.2.6.RELEASE)
自定义banner:PPS
___ ___ ___
| _ \ | _ \ / __|
| _/ | _/ \__ \
_|_|_ _|_|_ |___/
_| """ |_| """ |_|"""""|
"`-0-0-'"`-0-0-'"`-0-0-'
打印效果
自定义banner:佛祖
${AnsiColor.BRIGHT_YELLOW}
_ooOoo_
o8888888o
88" . "88
(| -_- |)
O\ = /O
____/`---'\____
.' \\| |// `.
/ \\||| : |||// \
/ _||||| -:- |||||_ \
| | \\\ - /'| | |
| \_| `\`---'// |_/ |
\ .-\__ `-. -'__/-. /
___`. .' /--.--\ `. .'___
."" '< `.___\_<|>_/___.' _> \"".
PPS | | : `- \`. ;`. _/; .'/ / .' ; | 码农洞见
\ \ `-. \_\_`. _.'_/_/ -' _.' /
================-.`___`-.__\ \___ /__.-'_.'_.-'================
更多自定义banner图标,请访问字符画生成网站:https://www.bootschool.net/ascii
2.3 重写接口Banner实现
SpringBoot提供了一个接口org.springframework.boot.Banner,可以重写Banner接口的printBanner方法。
2.4 在application.properties进行配置
# 是否显示banner,可选值[true|false]
spring.main.show-banner=false
3. 码农洞见
推荐一个知识分享和技术翻译的地址:https://github.com/DocsHome。
目前更新的内容包括:Nginx 中文文档、Spring 5.1.3 中文文档、Spring Boot 2.1.5 中文文档、 中文版 《微服务:从设计到部署》