PK创意闹新春,我正在参加「春节创意投稿大赛」,详情请看:春节创意投稿大赛
新年新气象,别光顾着打扮自己,也要打扮下自己吃饭的家伙SpringBoot的banner
你在SpringBoot服务每次启动的时候是不是都能看到下面输出的日志(默认的图案格式)
. ____ _ __ _ _
/\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \
( ( )___ | '_ | '_| | '_ / _` | \ \ \ \
\/ ___)| |_)| | | | | || (_| | ) ) ) )
' |____| .__|_| |_|_| |___, | / / / /
=========|_|==============|___/=/_/_/_/
:: Spring Boot :: (v2.5.6)
复制代码
这个小彩蛋用默认的多无聊,我们可以根据自己的需求客制化,把每个服务换成公司/私人的logo ,岂不是更有辨识度,更有趣。
直接开始
1. 实现banner类
需要自己实现banner的类,不是很方便
新建一个类实现spring的Bnner类,out.println()中输出自己的内容,代码如下图:
启动类的代码,传入上面实现的类即可
public static void main(String[] args) {
SpringApplication app = new SpringApplication(AjisunMybatisApplication.class);
// 设置自己实现的banner
app.setBanner(new SelfBanner());
// 启动
app.run(args);
}
复制代码
启动类的代码,new SpringApplication()传入上面实现的类即可
2. 使用spring提供的方式-banner文件
推荐使用,没有代码侵入,比较方便
这种配置是Spring boot中支持的,具体的实现可以看下SpringApplicationBannerPrinter
类,主要方法是getTextBanner
和getImageBanner
分别获取txt的文本banner和图片的banner,还是比较简单的
- 使用classpath下的指定文件banner.txt
在resource下面新建一个txt文件,里面放入需要输出的内容,如下
启动服务就可以了,小老虎就出来了,效果如下
对于txt的文本banner如上输出都是单调的颜色,不够美观,我们可以通过以下的方式自定义输出的个性化的颜色。
Spring提供了三个枚举类来设定字符的颜色,具体可以看下三个类,分别是:
-
AnsiColor: 用来设定字符的颜色
-
AnsiBackground: 用来设定字符的背景色
-
AnsiStyle: 用来控制加粗、斜体、下划线等等。
在banner.txt中的配置如下
启动服务输出(亮红的背景,亮黄的字体还加粗,多喜庆)
- 使用classpath下的指定图片banner.gif,banner.jpg,banner.png
直接使用图片生成banner很多时候效果不是很好,建议用第三方的工具生成ASCII之后复制到banner.txt中,效果更好。
这里使用的是微博的logo作为图片素材(此logo输出效果比较好,试了其他很多图片都不太行)
启动服务输出如下
- 当然还可以通过yml配置配置指定路径的图片格式的banner或者txt格式的banner
spring
banner:
charset: UTF-8 # Banner file encoding.
location: classpath:mapper/banner.txt # Banner file location.
image:
location: classpath:lcsm.gif # Banner image file location (jpg/png can also be used).
width: # Width of the banner image in chars (default 76)
height: # Height of the banner image in chars (default based on image height)
margin: # Left hand image margin in chars (default 2)
invert: # If images should be inverted for dark terminal themes (default false)
复制代码
这几种配置的优先级 :spring.banner.location = spring.banner.image.location > resources下的banner.txt = resources下的banner.png(.jpg/.gif) > 自建实现类Banner > springboot默认
如果txt和图片同时有效存在,那么启动服务两个都会输出,先输出图片后输出txt。
佛祖保佑
(佛祖保佑:永不宕机,需求不改,永无bug,上线顺利,身体健康,头发永驻,告别单身,升职加薪)
${AnsiColor.BRIGHT_YELLOW}${AnsiStyle.BOLD}
// _ooOoo_ //
// o8888888o //
// 88" . "88 //
// (| ^_^ |) //
// O\ = /O //
// ____/`---'____ //
// .' \| |// `. //
// / \||| : |||// \ //
// / _||||| -:- |||||- \ //
// | | \\ - /// | | //
// | _| ''---/'' | | //
// \ .-__ `-` ___/-. / //
// ___`. .' /--.--\ `. . ___ //
// ."" '< `.____<|>_/___.' >'"". //
// | | : `- `.;`\ _ /`;.`/ - ` : | | //
// \ \ `-. _ __\ /__ _/ .-` / / //
// ========`-.____`-.________/___.-`____.-'======== //
// `=---=' //
// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ //
// ${AnsiColor.BRIGHT_RED} 佛祖保佑 ${AnsiColor.BRIGHT_YELLOW} //
// ${AnsiColor.BRIGHT_RED} 永不宕机 需求不改 永无BUG 上线顺利 ${AnsiColor.BRIGHT_YELLOW} //
// ${AnsiColor.BRIGHT_RED} 身体健康 头发永驻 告别单身 升职加薪 ${AnsiColor.BRIGHT_YELLOW} //
///
复制代码
输出效果如下:
生成ASCII的在线地址
- 输入文字生成ASCII:patorjk.com/software/ta…
- 搜索关键字获得ASCII:www.bootschool.net/ascii-art
- 通过图片生成ASCII: www.degraeve.com/img2txt.php
赶快搞一个专属自己的图案吧