springboot启动后,控制台会打印一个图案出来,这个图案就叫banner,如果不配置的话打印的是springboot默认的banner,像这个样子:

这个banner是可以通过多种方式自定义的,也可以设置显示模式关闭banner;

banner的显示模式

显示模式可以通过SpringApplication.setBannerMode()或者SpringApplicationBuilder.bannerMode()或者配置文件的spring.main.banner-mode设置;

显示模式:

  • CONSOLE:打印到System.out;(默认)
  • LOG:打印到log文件;
  • OFF:关闭banner;

使用banner文本

默认读取classpath下的banner.txt文本,也可以通过配置文件配置;

例如在resources文件夹里添加一个banner.txt:

启动springboot后就会打印:

而不再是默认的sprinngboot的banner了;

几个可以的生成banner的网址:

  • ASCII Generator (network-science.de)
  • IMG2TXT: ASCII Art Made Easy! (degraeve.com)
  • Text to ASCII Art Generator (TAAG) (patorjk.com)
  • Spring Boot banner在线生成工具,制作下载英文banner.txt,修改替换banner.txt文字实现自定义,个性化启动banner-bootschool.net

使用banner图片

默认读取classpath下的banner.gif或者banner.jpg或者banner.png图片,也可以通过配置文件配置;

例如resources文件夹下有个这样的banner.gif:(两帧的gif,一帧打印A一帧打印B)

启动会生成:(会将每一帧的图片按顺序全打印出来)

classpath下的banner.jpg图片:

生成:

classpath下的banner.png图片:

生成:

banner图片只会读取一个,如果多个classpath下有同名的图片,按照classpath顺序使用最先读取到的同名图片;

classapth下的不同格式图片读取优先级:banner.gif > banner.jpg > banner.bng;

自定义banner类

可以通过实现Banner接口的printBanner()方法,使用SpringApplication.setBanner()方法或者SpringApplicationBuilder.banner()方法将该实现类设置为banner;

实现类MyBanner.java:(自定义banner类优先级比较低,去掉其他读取的banner再测试)

package testspringboot.test4banner;import java.io.PrintStream;import org.springframework.boot.Banner;
import org.springframework.boot.ansi.AnsiColor;
import org.springframework.core.env.Environment;public class MyBanner implements Banner {@Overridepublic void printBanner(Environment environment, Class<?> sourceClass, PrintStream out) {String s = "HELLO WORLD\n"+ "BANNER  BANNER  BANNER  BANNER  BANNER  BANNER  BANNER  BANNER\n"+ "  BANNER  BANNER  BANNER  BANNER  BANNER  BANNER  BANNER  BANNER\n"+ "    BANNER  BANNER  BANNER  BANNER  BANNER  BANNER  BANNER  BANNER\n"+ "      BANNER  BANNER  BANNER  BANNER  BANNER  BANNER  BANNER  BANNER\n"+ "HELLO WORLD\n\n";out.print(s);}}

启动类:

/*** 2022年10月28日上午9:30:25*/
package testspringboot.test4banner;import org.springframework.boot.Banner.Mode;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.WebApplicationType;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.context.annotation.PropertySource;/*** @author XWF**/
@SpringBootApplication
public class Test4Main {/*** @param args*/public static void main(String[] args) {SpringApplication app = new SpringApplication(Test4Main.class); app.setWebApplicationType(WebApplicationType.NONE); //关闭web服务
//      app.setBannerMode(Mode.OFF);    //关闭bannerapp.setBanner(new MyBanner());    //自定义Banner类app.run(args);//        SpringApplicationBuilder builder = new SpringApplicationBuilder(Test4Main.class);
//      builder.web(WebApplicationType.NONE)
//          .bannerMode(Mode.OFF)
//          .banner(new MyBanner())
//          .run(args);}}

执行结果:

banner的配置文件

properties或者yml里也可以对banner进行配置,相关配置如下:(似乎只能使用resources文件夹下的application.properties配置文件或者application.yml配置文件)

#设置显示banner模式,默认CONSOLE#OFF:关闭打印banner#CONSOLE:打印到System.out#LOG:打印到log文件
spring.main.banner-mode=console
#设置banner的字符编码,默认utf-8
spring.banner.charset=utf-8
#设置banner文本资源的位置,默认classpath:banner.txt
#支持classpath*:、classpath:、file:、http://和https://
spring.banner.location=classpath:banner.txt
#设置ANSI颜色的位深度,默认4#4:16色#8:256色
spring.banner.image.bitdepth=4
#设置banner图像的高度(单位字符),默认图像高度
spring.banner.image.height=20
#设置banner图像的宽度,默认76
spring.banner.image.width=100
#是否为暗色系背景图片反转颜色,默认false
spring.banner.image.invert=false
#设置banner图片的位置,默认classpath:banner.gif(jpg和png也适用)
spring.banner.image.location=classpath:banner.jpg
#设置banner图片左边空白间隔,默认2
spring.banner.image.margin=10
#设置渲染图像时使用的像素模式
#TEXT:使用文本字符
#BLOCK:使用unicode块字符
spring.banner.image.pixelmode=TEXT

另外,banner.txt等的名称也可以改成别的,例如:banner.abc、xxx.a等等;

banner优先级

application.properties、application.yml配置文件的banner文本和图片 > classpath下的banner.txt/banner.gif/banner.jpg/banner.png > 自定义banner类 > springboot默认banner;

如果同时有banner文本和banner图片,两者都会打印,先打印图片再打印文本;

banner.txt里的可设置参数

几个默认的可用参数:

  • MANIFEST.MF版本号:${application.version}
  • MANIFEST.MF格式化版本号:${application.formatted-version}
  • SpringBoot版本号:${spring-boot.version}
  • SpringBoot格式化版本号:${spring-boot.formatted-version}
  • MANIFEST.MF里的title:${application.title}

也可以使用properties或者yml里自定义的配置参数,使用${}访问;

例如:

application.properties里设置:

spring.banner.location=classpath:bannertest.txtmybanner.version=1.0.0
say=hello world

bannertest.txt:

 _________  _______   ________  _________  ___   ___
|\___   ___\\  ___ \ |\   ____\|\___   ___\\  \ |\  \
\|___ \  \_\ \   __/|\ \  \___|\|___ \  \_\ \  \\_\  \   \ \  \ \ \  \_|/_\ \_____  \   \ \  \ \ \______  \  \ \  \ \ \  \_|\ \|____|\  \   \ \  \ \|_____|\  \ \ \__\ \ \_______\____\_\  \   \ \__\       \ \__\\|__|  \|_______|\_________\   \|__|        \|__|\|_________|                     MANIFEST.MF版本号:${application.version}
MANIFEST.MF格式化版本号:${application.formatted-version}
SpringBoot版本号:${spring-boot.version}
SpringBoot格式化版本号:${spring-boot.formatted-version}
MANIFEST.MF里的title:${application.title}配置文件application.properties里定义的参数:
mybanner.version:${mybanner.version}
say:${say}

打印结果:

banner.txt里的颜色和字体

springboot提供了3个枚举用来设置banner.txt里字符的颜色、背景色、字体:

  • AnsiColor:字符颜色
  • AnsiBackground:背景色
  • AnsiStyle:字体

使用${AnsiColor.NAME}, ${AnsiBackground.NAME}, ${AnsiStyle.NAME} 可设置从标签开始到banner结束的颜色和字体,除非后面遇到下一个同类标签才会改变;

例如:

banner文本:

 _________  _______   ________  _________  ___   ___
|\___   ___\\  ___ \ |\   ____\|\___   ___\\  \ |\  \
\|___ \  \_\ \   __/|\ \  \___|\|___ \  \_\ \  \\_\  \   \ \  \ \ \  \_|/_\ \_____  \   \ \  \ \ \______  \  \ \  \ \ \  \_|\ \|____|\  \   \ \  \ \|_____|\  \ \ \__\ \ \_______\____\_\  \   \ \__\       \ \__\\|__|  \|_______|\_________\   \|__|        \|__|\|_________|                     MANIFEST.MF版本号:${application.version}
MANIFEST.MF格式化版本号:${application.formatted-version}
SpringBoot版本号:${spring-boot.version}
SpringBoot格式化版本号:${spring-boot.formatted-version}
MANIFEST.MF里的title:${application.title}配置文件application.properties里定义的参数:
mybanner.version:${mybanner.version}
say:${say}${AnsiColor.RED}红色字红色字1234 ${AnsiColor.GREEN}绿色字绿色字1234 ${AnsiColor.BLUE}蓝色字蓝色字1234
${AnsiBackground.YELLOW}黄色背景@@@ ${AnsiBackground.CYAN}青色背景@@@ ${AnsiBackground.BRIGHT_BLUE}亮蓝色背景@@@ 后面加空格
${AnsiColor.BRIGHT_GREEN}${AnsiBackground.BRIGHT_CYAN}------------后-面-改-为-亮-绿-色-字-和-亮-青-色-背-景------------
${AnsiStyle.BOLD}BOLD   ${AnsiStyle.FAINT}FAINT   ${AnsiStyle.ITALIC}ITALIC   ${AnsiStyle.UNDERLINE}UNDERLINE
${AnsiColor.DEFAULT}${AnsiBackground.DEFAULT}${AnsiStyle.NORMAL}还原到默认字还原到默认字还原到默认字

运行结果:

SpringBoot——关于banner相关推荐

  1. 我把SpringBoot的banner换成了美女,老板:工作不饱和,建议加班

    欢迎关注方志朋的博客,回复"666"获面试宝典 一:banner.txt 在SpringBoot项目的resources目录下新建一个banner.txt文本文件,然后将启动Ban ...

  2. SpringBoot: 启动Banner在线生成工具

    我们在启动 SpringBoot 时,控制台会打印 SpringBoot Logo 以及版本信息:这个操作是可以通过 SpringBoot的banner自定义实现 . ____ _ __ _ _/\\ ...

  3. IDEA SpringBoot 自定义Banner

    IDEA SpringBoot 自定义Banner 首先在IDEA项目中创建banner.txt文件 然后浏览器搜索SpringBoot Banner在线生成工具 选择一个自己喜欢的banner 例如 ...

  4. Springboot替换banner不管用?

    Springboot替换banner不管用 我们想修改一下Springboot启动的图标却发现,不能替换banner文件的图标了,Springboot替换的banner的方法网上讲的很详细,就是将ba ...

  5. spring-boot启动banner

    title: spring-boot启动banner 愿你百岁无忧 肆无忌惮 管他沧海桑田 你仍是四月人间 /** * .,:,,, .::,,,::. * .::::,,;;, .,;;:,,... ...

  6. springboot之banner

    Springboot的Banner 1.banner的作用 2.使用banner的方式 2.1.默认banner(不设置任何banner) 2.2.自定义banner(自定义类实现`org.sprin ...

  7. SpringBoot启动--banner.txt

    SpringBoot启动–banner.txt 在项目的resources文件夹下新建一个banner.txt文件,或者自定义文件之后在application.property中指定文件路径. 也可以 ...

  8. SpringBoot自定义banner小彩蛋

    我们在启动 SpringBoot 时,控制台会打印 SpringBoot Logo 以及版本信息:这个操作是可以通过 SpringBoot的banner自定义实现 . ____ _ __ _ _/\\ ...

  9. SpringBoot启动banner更改

    这篇文章的开始先给大家看一个图片 用过或者看过springboot的人都知道,这就是springboot启动的banner,这一篇介绍如何自定义springboot的启动bannner. 先介绍一个可 ...

最新文章

  1. ML基石_14_Regularization
  2. 累计连续签到设计和实现
  3. 投屏画面尺寸拉伸怎么办_手机投屏转换器设置方法图文教程
  4. WEB前端学习四 js什么是原始类型
  5. 图像处理理论(四)——HOG, Haar, ISP
  6. C++error:找不到指定文件
  7. C语言重难点:大端小端
  8. 如何查看linux的资源,Linux系统资源查看(示例代码)
  9. 深度学习2.08.tensorflow的高阶操作之张量排序
  10. 编译原理实验五:编译器自动生成工具
  11. nginx配置错误页面的2种方式
  12. win10 IDE改AHCI,无需重装系统
  13. 文件下载,请求头的写法
  14. 专升本英语——菜鸟学习笔记【知识点齐全-轻松学习】!!!
  15. 如何将OGV格式的视频转换成MP4格式
  16. http协议文字加图解
  17. [作品]文本修辑转换器
  18. Java实现多附件的邮件发送
  19. linux创建新的虚拟环境,并安装指定版本的包
  20. windows关机与重启bat脚本

热门文章

  1. MySQL 必知必会系列(五)
  2. 【机器学习】逻辑回归案例二:鸢尾花数据分类,决策边界绘制逐步代码讲解
  3. 仿微信朋友圈,仿微信小视频 ,录制视频功能
  4. Deployer php自动部署,简单轻松部署你的项目 - Deployer
  5. Xposed插件的编写
  6. 3D打印中常见的7中材质分析
  7. 华为MateBook电脑连接蓝牙鼠标使用失灵解决方法
  8. Access to XMLHttpRequest at ‘http127.0.0.18000server‘ from origin ‘http127.0.0.15500‘ has
  9. 直播系统开发之ios对接腾讯云直播sdk
  10. 傅里叶分析的方方面面:复正弦、负频率