SpringBoot——关于banner
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相关推荐
- 我把SpringBoot的banner换成了美女,老板:工作不饱和,建议加班
欢迎关注方志朋的博客,回复"666"获面试宝典 一:banner.txt 在SpringBoot项目的resources目录下新建一个banner.txt文本文件,然后将启动Ban ...
- SpringBoot: 启动Banner在线生成工具
我们在启动 SpringBoot 时,控制台会打印 SpringBoot Logo 以及版本信息:这个操作是可以通过 SpringBoot的banner自定义实现 . ____ _ __ _ _/\\ ...
- IDEA SpringBoot 自定义Banner
IDEA SpringBoot 自定义Banner 首先在IDEA项目中创建banner.txt文件 然后浏览器搜索SpringBoot Banner在线生成工具 选择一个自己喜欢的banner 例如 ...
- Springboot替换banner不管用?
Springboot替换banner不管用 我们想修改一下Springboot启动的图标却发现,不能替换banner文件的图标了,Springboot替换的banner的方法网上讲的很详细,就是将ba ...
- spring-boot启动banner
title: spring-boot启动banner 愿你百岁无忧 肆无忌惮 管他沧海桑田 你仍是四月人间 /** * .,:,,, .::,,,::. * .::::,,;;, .,;;:,,... ...
- springboot之banner
Springboot的Banner 1.banner的作用 2.使用banner的方式 2.1.默认banner(不设置任何banner) 2.2.自定义banner(自定义类实现`org.sprin ...
- SpringBoot启动--banner.txt
SpringBoot启动–banner.txt 在项目的resources文件夹下新建一个banner.txt文件,或者自定义文件之后在application.property中指定文件路径. 也可以 ...
- SpringBoot自定义banner小彩蛋
我们在启动 SpringBoot 时,控制台会打印 SpringBoot Logo 以及版本信息:这个操作是可以通过 SpringBoot的banner自定义实现 . ____ _ __ _ _/\\ ...
- SpringBoot启动banner更改
这篇文章的开始先给大家看一个图片 用过或者看过springboot的人都知道,这就是springboot启动的banner,这一篇介绍如何自定义springboot的启动bannner. 先介绍一个可 ...
最新文章
- ML基石_14_Regularization
- 累计连续签到设计和实现
- 投屏画面尺寸拉伸怎么办_手机投屏转换器设置方法图文教程
- WEB前端学习四 js什么是原始类型
- 图像处理理论(四)——HOG, Haar, ISP
- C++error:找不到指定文件
- C语言重难点:大端小端
- 如何查看linux的资源,Linux系统资源查看(示例代码)
- 深度学习2.08.tensorflow的高阶操作之张量排序
- 编译原理实验五:编译器自动生成工具
- nginx配置错误页面的2种方式
- win10 IDE改AHCI,无需重装系统
- 文件下载,请求头的写法
- 专升本英语——菜鸟学习笔记【知识点齐全-轻松学习】!!!
- 如何将OGV格式的视频转换成MP4格式
- http协议文字加图解
- [作品]文本修辑转换器
- Java实现多附件的邮件发送
- linux创建新的虚拟环境,并安装指定版本的包
- windows关机与重启bat脚本
热门文章
- MySQL 必知必会系列(五)
- 【机器学习】逻辑回归案例二:鸢尾花数据分类,决策边界绘制逐步代码讲解
- 仿微信朋友圈,仿微信小视频 ,录制视频功能
- Deployer php自动部署,简单轻松部署你的项目 - Deployer
- Xposed插件的编写
- 3D打印中常见的7中材质分析
- 华为MateBook电脑连接蓝牙鼠标使用失灵解决方法
- Access to XMLHttpRequest at ‘http127.0.0.18000server‘ from origin ‘http127.0.0.15500‘ has
- 直播系统开发之ios对接腾讯云直播sdk
- 傅里叶分析的方方面面:复正弦、负频率