千家信息网

SpringBoot中banner怎么使用

发表于:2025-11-07 作者:千家信息网编辑
千家信息网最后更新 2025年11月07日,这篇文章主要介绍"SpringBoot中banner怎么使用"的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇"SpringBoot中banner怎么使用"文章能帮
千家信息网最后更新 2025年11月07日SpringBoot中banner怎么使用

这篇文章主要介绍"SpringBoot中banner怎么使用"的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇"SpringBoot中banner怎么使用"文章能帮助大家解决问题。

制作自己的banner

第一步:在src/main/resources下面创建banner.txt。

第二步:访问网站 http://patorjk.com/software/taag,在网站"Type Something "处输入想要制作的单词(比如:Hello World),会生成对应的字符。也可以通过其他参数来调整字符的样式。

复制生成的字符,粘贴到banner.txt,再次启动程序便可以打印出指定的banner了。

个人比较喜欢的banner是如下图形:

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

在新版本的SpringBoot中,支持了gif、jpg和png的图片形式的banner打印。当然,并不会把图片直接打印在控制台,而是将其像素解析转换成assii编码之后打印。

对于gif动图,会把动图的每个图片都打印出来,如果动图比较大,打印时间较长。可以尝试一下,但建议不要使用gif。

在banner.txt中,还可以进行一些设置,比如上图中的${AnsiColor.BRIGHT_YELLOW}。

  • AnsiColor.BRIGHT_RED:设置控制台中输出内容的颜色

  • application.version:用来获取MANIFEST.MF文件中的版本号

  • application.formatted-version:格式化后的application.version版本信息

  • spring-boot.version:Spring Boot的版本号

  • spring-boot.formatted-version:格式化后的spring-boot.version版本信息

Banner接口

在未指定banner.txt或banner图片时,默认图形存储在哪里了呢?下面我们了解一下Banner接口。

@FunctionalInterfacepublic interface Banner {  // 打印banner  void printBanner(Environment environment, Class sourceClass, PrintStream out);  enum Mode {    // 关闭    OFF,    // 控制台    CONSOLE,    // 日志文件    LOG  }}

在banner接口中提供了打印banner的方法和一个枚举类。枚举类有三个值:OFF、CONSOLE、LOG,用来控制banner的打印,分别对应:关闭打印、控制台打印和日志打印。

banner接口的实现主要有ResourceBanner、ImageBanner、SpringBootBanner和其他内部类的实现。其中上面看到的图形的打印就来自于SpringBootBanner。看一下源代码:

class SpringBootBanner implements Banner {  private static final String[] BANNER = { "",      " .  ____     _      __ _ _",      " /\\\\ / ___'_ __ _ _(_)_ __ __ _ \\ \\ \\ \\",      "( ( )\\___ | '_ | '_| | '_ \\/ _` | \\ \\ \\ \\",      " \\\\/ ___)| |_)| | | | | || (_| | ) ) ) )",      " ' |____| .__|_| |_|_| |_\\__, | / / / /",      " =========|_|==============|___/=/_/_/_/" };  private static final String SPRING_BOOT = " :: Spring Boot :: ";  private static final int STRAP_LINE_SIZE = 42;  @Override  public void printBanner(Environment environment, Class sourceClass,      PrintStream printStream) {    for (String line : BANNER) {      printStream.println(line);    }    String version = SpringBootVersion.getVersion();    version = (version != null) ? " (v" + version + ")" : "";    StringBuilder padding = new StringBuilder();    while (padding.length() < STRAP_LINE_SIZE        - (version.length() + SPRING_BOOT.length())) {      padding.append(" ");    }    printStream.println(AnsiOutput.toString(AnsiColor.GREEN, SPRING_BOOT,        AnsiColor.DEFAULT, padding.toString(), AnsiStyle.FAINT, version));    printStream.println();  }}

在printBanner的方法实现中,首先打印了默认的Banner字符串数组,然后将SPRING_BOOT和版本信息进行拼接打印。

Banner的参数设置

banner的参数设定可以通过两种形式,一种是代码的形式,一种是配置文件的形式。

使用代码的形式首先要将默认的main方法进行改造,手动创建SpringApplication对象,然后设置相应的参数。示例代码:

public static void main(String[] args) {  SpringApplication app = new SpringApplication(SpringbootBannerApplication.class);  app.setBannerMode(Banner.Mode.CONSOLE);  Banner banner = new ImageBanner(new ClassPathResource("banner1.png"));  app.setBanner(banner);  app.run(args);}

通过配置文件设置就比较简单,直接在application.properties中进行配置,springboot已经帮我们预制好了相应的参数。

spring.banner.location=classpath:banner1.pngspring.banner.image.margin=2spring.banner.image.height=76spring.banner.charset=UTF-8spring.banner.image.invert=falsespring.banner.image.location=banner1.pngspring.main.banner-mode=consolespring.main.show-banner=true

其中spring.main.show-banner来控制是否打印banner,在新版本中不建议使用,可以使用spring.main.banner-mode代替,将其值设置为OFF即可关闭banner的打印。

引入文本banner通过spring.banner.location来指定,引入图片相关的banner需要通过spring.banner.image.location来指定路径,否则会出现乱码情况。

如果不想显示banner,可以在代码中通过setBannerMode(Banner.Mode.OFF)方法或通过参数配置spring.main.banner-mode=off来关闭banner的打印。上面示例中已经有所展示。

关于"SpringBoot中banner怎么使用"的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识,可以关注行业资讯频道,小编每天都会为大家更新不同的知识点。

参数 控制 图片 形式 方法 版本 代码 字符 接口 控制台 文件 配置 信息 图形 知识 内容 可以通过 建议 日志 格式 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 数据库提升团队专业技术能力 网络安全应具有 特征 网络安全信息漏洞总结 白莲广场网络安全手册 数据库中的专业用户是哪些人 加强软件开发管理制度 sql创建一个图书管理数据库 云数据库服务 价格 网络安全保护是什么 中国网络安全在线平台 知网数据库撤稿后更新 触宝电话数据库 软件开发公司如何运营管理 宜良上门软件开发市场报价 win10信息服务器打不开 小区道闸系统怎么导入车辆数据库 杭州工控软件开发如何收费 长城行动筑牢网络安全 戴尔四核服务器 空间数据库技术应用实训总结 完美服务器至少保留两个地区 研究软件开发挣钱吗 普陀区网络技术防水施工 网络安全 sql注入 广州专业软件开发供应商 七星关区计算机网络技术职业学校 网络安全人民网评 网络安全实施交付工程师 无锡哪里可以学习网络安全 用友软件开发有限公司
0