Spring Boot自定义Banner

https://www.jianshu.com/p/a53f324c92f2

我们在启动 SpringBoot 时,控制台会打印 SpringBoot Logo 以及版本信息;这个操作是 SpringBoot 固定的还是可配置(自定义)的?

  .   ____          _            __ _ _/\\ / ___'_ __ _ _(_)_ __  __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \\\/  ___)| |_)| | | | | || (_| |  ) ) ) )'  |____| .__|_| |_|_| |_\__, | / / / /=========|_|==============|___/=/_/_/_/:: Spring Boot ::       (v1.5.12.RELEASE)

带着这个疑问,翻阅了一下源码发现这个操作还真可以自定义,SpringBoot 有一个接口org.springframework.boot.Banner 是专门来做这个操作的。我们可以实现这个接口来自定义打印 Banner 信息;但是不推荐自己去写,因为这个不是什么重要的功能,没必要把时间花在这上面,既然 SpringBoot 提供了这个功能,肯定为我们实现了。

  • org.springframework.boot.ResourceBanner

    文本格式,SpringBoot 会读取配置项banner.txtbanner.location,从配置项中获取真实的文件地址;如果配置中没有配置,会把配置项作为文件去加载;

  • org.springframework.boot.ImageBanner

    图片格式,SpringBoot 加载配置项banner.image.location,从配置项中获取真实的路径,SpringBoot 会根据配置项的路径加载文件。
    如果没有配置banner.image.location,转而依次加载banner.gifbanner.jpg、 banner.png这三个中存在的文件;

如果上面两种都没有配置,SpringBoot 就会加载默认的 Banner;也就是文章开头介绍的方式。

接下来我会介绍在文本格式(ResourceBanner);

环境:
操作系统:MacOS
SpringBoot版本:1.5.12.RELEASE

创建启动类:
src/main/java/{package}/Application.java

@SpringBootApplication
public class Application {public static void main(String[] args) {// 启动颜色格式化// 这不是唯一启动颜色格式的方式,有兴趣的同学可以查看源码/*** 1. AnsiOutput.setEnabled(AnsiOutput.Enabled.ALWAYS);* 2. 在`src/main/resources`目录下新建文件`application.properties`,*    内容为:`spring.output.ansi.enabled=always`* * 重要:如果配置第二种方式,第一种方式就不会起作用*/AnsiOutput.setEnabled(AnsiOutput.Enabled.ALWAYS);new SpringApplicationBuilder(Application.class)//.main(SpringVersion.class) // 这个是为了可以加载 Spring 版本.bannerMode(Banner.Mode.CONSOLE)// 控制台打印.run(args);}
}

创建Banner文件
src/main/resource/banner.txt

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

从上面的内容中可以看到,还使用了一些属性设置:

  • ${AnsiColor.BRIGHT_RED}:设置控制台中输出内容的颜色,可以自定义,具体参考org.springframework.boot.ansi.AnsiColor
  • ${application.version}:用来获取MANIFEST.MF文件中的版本号,这就是为什么要在Application.java中指定 SpringVersion.class
  • {application.formatted-version}:格式化后的{application.version}版本信息
  • ${spring-boot.version}:Spring Boot的版本号
  • {spring-boot.formatted-version}:格式化后的{spring-boot.version}版本信息

效果

spring-boot-banner.png

从效果图看,我们定义的文本最后被上了颜色,颜色是如何转换的,可以参考:颜色特效

生成工具

如果让我们手工的来编辑这些字符画,显然是一件非常困难的差事。所以,我们可以借助下面这些工具,轻松地根据文字或图片来生成用于Banner输出的字符画。

  • http://patorjk.com/software/taag
  • http://www.network-science.de/ascii/
  • http://www.degraeve.com/img2txt.php

参考来源:

Spring Boot自定义Banner相关推荐

  1. 新年彩蛋:Spring Boot自定义Banner

    在2016年的最后一天,借用Spring Boot的Banner向各位程序猿同仁们问候一声:Happy New Year. 接下来我们就来介绍一下这个轻松愉快的自定义banner功能.实现的方式非常简 ...

  2. Spring boot 自定义banner

    Spring Boot启动的时候会在命令行生成一个banner,其实这个banner是可以自己修改的,本文将会将会讲解如何修改这个banner. 首先我们需要将banner保存到一个文件中,网上有很多 ...

  3. Spring boot 自定义banner的在线制作

    哈喽~,大家好.我是方子龙,一个喜欢折腾的Java码匠,但不止止玩Java,也会玩前端,Golang, Python等等. 目前工作不是很忙,利用闲暇的时间,在给自己不断地充电,提升自己的技术实力. ...

  4. 二、Spring Boot 自定义Banner 横幅

    Banner 介绍 实现方式 推荐一个生成ascii艺术字的网站 Banner 介绍 首先Banner是什么?呃呃呃就是下面这玩意... 从文档中看到这东西是可以自定义的,然后试了下,变成下面这个样子 ...

  5. Spring Boot自定义启动Banner

    Spring Boot自定义启动Banner 生成工具 https://www.bootschool.net/ascii

  6. Spring Boot自定义横幅生成

    每当我们启动Spring Boot应用程序时,都会显示如下所示的文本消息. 这称为横幅. 现在,如果我们可以创建一个特定于我们的Spring Boot应用程序的自定义横幅并使用它代替默认的Spring ...

  7. Spring Boot自定义 Servlet Filter 的两种方式

    点击上方蓝色"程序猿DD",选择"设为星标" 回复"资源"获取独家整理的学习资料! 作者 | 码农小胖哥 来源 | 公众号「码农小胖哥」 针 ...

  8. Spring Boot——自定义Web配置类后无法访问/static文件夹下静态资源

    问题描述 自定义Web配置类后无法访问 /static文件夹下静态资源. 已加相关依赖包. 官方文档 Spring MVC Auto Configuration Maven <dependenc ...

  9. Spring Boot自定义错误页面

    Spring Boot以一种新的微服务的方式来替代以Spring Framework构建项目的传统方式,我已经计划在后续的项目开发中使用它.它已经帮我们做了90%的工作,剩下10%的工作需要我们自己去 ...

最新文章

  1. 强烈推荐一款Python可视化神器!
  2. CommonJS规范(转)
  3. 电力系统服务器故障预案,电网预案推演系统及电网预案推演方法
  4. 使用SetUnhandledExceptionFilter()让程序优雅的崩溃
  5. Sandwell模型和卫星测高反演海底地形
  6. 数字藏品文博周将至,拙政园主题数字藏品全网首发
  7. 做IT民工还是IT精英?
  8. 人人网、7K7K、178等各网站迅雷地址。最新得到的各种URL。
  9. Linux下的exec系统调用详解
  10. java网络编程--UDP程序设计
  11. SQLServer之创建唯一非聚集索引
  12. 在线查看word,excel,pdf文件解决
  13. 更换一个已到使用寿命的墨盒--Epson
  14. html表头解释_1分钟内解释的html
  15. Soft Filter Pruning(SFP)算法笔记
  16. 循环报错: 远程主机强迫关闭了一个现有的连接
  17. Bootstrap框架个人总结
  18. arcgis10.2以上dbf用excel打开中文乱码问题(10.8为例)
  19. 几个逼真的页面 watch out
  20. PHP输出一段励志的话,至自己励志的一段话 鼓励拼搏的句子

热门文章

  1. mac 图形化安装mysql,mac安装mysql图形化工具?
  2. mysql日志监控 zabbix_zabbix日常监控项mysql(七)
  3. 洛谷——P2524 Uim的情人节礼物·其之弐
  4. Druid monitor中SQL监控显示不出数据(已解决)
  5. 什么是事件的三要素?
  6. IP地址和子网划分学习笔记之《预备知识:进制计数》
  7. golang nats request/reply模式
  8. 顺势而为,戴尔加速流动文件系统进化
  9. mysql 恢复同步_常见MySQL同步错误恢复方法
  10. ANT自动化压缩合并JS/CSS和更改版本号