Banner样式控制
上面讲了 banner 文字部分的修改,我们还可以修改 banner 的演示以及其他属性,例如字体的样式,粗体、斜体等,Spring Boot 为提供了三个枚举类来设定这些样式,他们分别是:
- AnsiColor:用来设定字符的前景色;
- AnsiBackground:用来设定字符的背景色。
- AnsiStyle:用来控制加粗、斜体、下划线等等。
例如,我们可以使用 AnsiColor 来设置颜色,banner.txt 中的信息如下:
${AnsiColor.BRIGHT_RED} _ _ _ _ ${AnsiColor.BRIGHT_RED} | || | ___ | | | | ___ ${AnsiColor.BRIGHT_YELLOW} | __ | / -_) | | | | / _ \ ${AnsiColor.BRIGHT_YELLOW} |_||_| \___| _|_|_ _|_|_ \___/ ${AnsiColor.BRIGHT_RED}_|"""""|_|"""""|_|"""""|_|"""""|_|"""""| ${AnsiColor.BRIGHT_RED}"`-0-0-'"`-0-0-'"`-0-0-'"`-0-0-'"`-0-0-'
最终的展示效果如下图所示:
Banner使用输出变量
在 banner.txt 中我们还可以输出一些全局变量,例如:
- ${application.version}:用来获取 MANIFEST.MF 文件中的版本号;
- ${application.formatted-version}:格式化后的 ${application.version} 版本信息;
- ${spring-boot.version}:Spring Boot 版本号;
- ${spring-boot.formatted-version}:格式化后的 ${spring-boot.version} 版本信息。
使用示例如下:
/¯¯¯¯\ o-|[][]|-o |_--_| /¯¯¯¯¯¯¯¯¯¯\ ||| «» ||| ||| ||| (o)| |(o) | || | |__||__| |__||__| Spring Boot 版本:${spring-boot.version}
Banner图在线生成
在线生成 banner 的地址:
- https://www.bootschool.net/ascii
- http://www.network-science.de/ascii/
- http://patorjk.com/software/taag/
- http://www.degraeve.com/img2txt.php
推荐使用第一种,使用缩略图如下:
隐藏Banner
如果我们需要隐藏 banner 信息,可以通过以下三种方法实现。
1.通过代码关闭Banner
我们可以在 Spring Boot 启动(run)之前设置隐藏 banner,实现代码如下:
public class DemoApplication { public static void main(String[] args) { SpringApplication springApplication = new SpringApplication(DemoApplication.class); // 隐藏 banner springApplication.setBannerMode(Banner.Mode.OFF); // 启动 Spring Boot springApplication.run(args); } }
2.通过配置文件隐藏Banner
在 Spring Boot 的配置文件 application.properties
通过设置如下配置来隐藏 banner 的显示,配置如下:
spring.main.banner-mode=off
3.在Idea中隐藏Banner
我们可以在 Idea 的调试配置中隐藏 banner,如下图所示:
附:彩蛋
文章的末尾,附一个七彩佛祖的 banner 内容:
${AnsiColor.BRIGHT_GREEN}$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ ${AnsiColor.BRIGHT_YELLOW}$$ _.ooOoo._ $$ ${AnsiColor.BRIGHT_RED}$$ o888888888o $$ ${AnsiColor.BRIGHT_CYAN}$$ 88" . "88 $$ ${AnsiColor.BRIGHT_MAGENTA}$$ (| ^_^ |) $$ ${AnsiColor.BRIGHT_GREEN}$$ O\ = /O $$ ${AnsiColor.BRIGHT_RED}$$ ____/`-----'\____ $$ ${AnsiColor.BRIGHT_CYAN}$$ .' \\| |$$ `. $$ ${AnsiColor.BRIGHT_MAGENTA}$$ / \\||| : |||$$ \ $$ ${AnsiColor.BRIGHT_GREEN}$$ / _||||| -:- |||||- \ $$ ${AnsiColor.BRIGHT_YELLOW}$$ | | \\\ - $$/ | | $$ ${AnsiColor.BRIGHT_GREEN}$$ | \_| ''\-----/'' | | $$ ${AnsiColor.BRIGHT_YELLOW}$$ \ .-\___ `-` ____/-. / $$ ${AnsiColor.BRIGHT_CYAN}$$ ___`. .' /--.--\ `. . ___ $$ ${AnsiColor.BRIGHT_RED}$$ ."" '< `.____\_<|>_/____.' >'"". $$ ${AnsiColor.BRIGHT_GREEN}$$ | | : `- \`.;`.\ _ /``;.`/ - ` : | | $$ ${AnsiColor.BRIGHT_YELLOW}$$ \ \ `-. \_ ___\ /___ _/ .-` / / $$ ${AnsiColor.BRIGHT_CYAN}$$ ========`-.____`-.____\_____/____.-`____.-'======== $$ ${AnsiColor.BRIGHT_MAGENTA}$$ `=---=' $$ ${AnsiColor.BRIGHT_YELLOW}$$ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ $$ ${AnsiColor.BRIGHT_GREEN}$$ 佛祖保佑 永无BUG 永不修改 $$ ${AnsiColor.BRIGHT_YELLOW}$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ ${AnsiColor.BRIGHT_YELLOW}
实现效果如下图所示:
总结
本文我们讲了自定义 banner 的两种方法,自定义 banner 类和 banner.txt 的方式,其中以源码分析的方式讲了为什么可以通过 banner.txt
自定义 banner信息。我们还讲了 banner 样式控制(颜色、字体样式等)和全局变量输出的方法,以及 banner 图在线生成的几个地址,最后还讲了 3 种隐藏 banner 的方法。