1.文本图案
两种方案任选其一即可
- 在resource下创建名为banner.txt的文件
- 在resource下创建自定义文件名称
yml spring.banner.location=classpath:1.txt (其中1为自定义名称)
参考图片
// _ooOoo_ //
// o8888888o //
// 88" . "88 //
// (| ^_^ |) //
// O\ = /O //
// ____/`---'\____ //
// .' \\| |// `. //
// / \\||| : |||// \ //
// / _||||| -:- |||||- \ //
// | | \\\ - /// | | //
// | \_| ''\---/'' | | //
// \ .-\__ `-` ___/-. / //
// ___`. .' /--.--\ `. . ___ //
// ."" '< `.___\_<|>_/___.' >'"". //
// | | : `- \`.;`\ _ /`;.`/ - ` : | | //
// \ \ `-. \_ __\ /__ _/ .-` / / //
// ========`-.____`-.___\_____/___.-`____.-'======== //
// `=---=' //
// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ //
// 佛祖保佑 永不宕机 永无BUG //
在线制作Ascii文字
http://patorjk.com/software/taag/#p=display&f=Graffiti&t=Type%20Something%20
2.gif,jpg,png图案
实际效果其实就是将图片转为ASCII文字进行打印输出…
两种方案任选其一即可
1.将文件复制在resource下,yml中添加指向 spring.banner.image.location=classpath:1.gif
2.在resource下创建banner.txt 然后使用第三方网站 将图片转换为ASCII码后复制在banner.txt中
网址: https://www.degraeve.com/img2txt.php
3.源码时间
从头往下追 挑相关的看
先找到启动类
向下追实现类
可以看到在这是实现打印banner的实际代码 ,继续
此处判断是否打印banner ,继而判断是CONSOLE模式还是log模式 影响不大实际都指向同一实现,继续
可以看出 首先加载的是图片类 然后在加载的文字类
先看图片类是如何实现的
此处首先会查看 yml 下spring.banner.image.location 是有有对应配置 有且文件存在则加载, 如果不存在都到下面for循环 会检查banner.gif,banner.jpg,png,banner.png 是否存在 如都不存在 检测结束
如果成功 继续
这就是图片类的实际执行类 将图片转为ASCII的操作就在此处的printBanner 方法中 有兴趣的同学可以观摩一番 此处不做详细说明
下面是文字类,书接上回
可以看到首先会检查yml中spring.banner.image.location 是否有配置 未配置则会默认寻找DEFAULT_BANNER_LOCATION - banner.txt 文件
结束!
文字实际执行类:SpringApplicationBannerPrinter.getTextBanner
图片实际执行类:ImageBanner.printBanner