SpringBoot操作之项目自定义启动Banner

开发 架构
启动Banner是在应用程序启动过程中显示的一段文本或图形。它通常包含应用程序的名称、版本信息和其他相关的元数据。启动Banner能够提供对应用程序正在启动的直观反馈,同时也可以为用户展示个性化的信息。

一、前言

当我们启动基于Spring Boot的应用程序时,通常会看到一个默认的图形,它显示了Spring标志和版本信息。这个就是启动Banner,在一些开源框架中也都会使用自定义的Banner,当然我们也可以自定义启动Banner,以展示您自己的个性化信息或公司品牌。

今天和大家一起来自定义一个Banner体会一下哈!!

二、Banner介绍

启动Banner是在应用程序启动过程中显示的一段文本或图形。它通常包含应用程序的名称、版本信息和其他相关的元数据。启动Banner能够提供对应用程序正在启动的直观反馈,同时也可以为用户展示个性化的信息。

默认打印:

三、自定义Banner

自定义Banner有两种不同的形式:

  • 自己画出图形放到banner.txt
  • 使用图片banner.gif、banner.jpg、banner.png:图像被转换为 ASCII 艺术表示并打印在任何文本横幅上方。

当然banner.txt的功能比图片的多一些,可以加一下参数,图片的话只能自己在代码里在加!

变量

描述

${application.version}

您的应用程序的版本号,如 中声明的那样MANIFEST.MF。例如,Implementation-Version: 1.0打印为1.0.

${application.formatted-version}

您的应用程序的版本号,如 中 声明的MANIFEST.MF和显示格式的(用方括号括起来并以 为前缀v)。例如(v1.0)。

${spring-boot.version}

您正在使用的 Spring Boot 版本。例如2.7.13。

${spring-boot.formatted-version}

您正在使用的 Spring Boot 版本,已格式化以供显示(用方括号括起来并以 为前缀v)。例如(v2.7.13)。

${Ansi.NAME}(或${AnsiColor.NAME}, ${AnsiBackground.NAME}, ${AnsiStyle.NAME})

NAMEANSI 转义码的名称:AnsiPropertySource详情请参阅。

${application.title}

您的申请的标题,如 中声明的那样MANIFEST.MF。例如Implementation-Title: MyApp打印为MyApp.

AnsiPropertySource详情请参阅:https://github.com/spring-projects/spring-boot/blob/v2.7.13/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/ansi/AnsiPropertySource.java

我们就一个个试试,自己写banner.txt当然很费劲,我们使用网上生成的就可以了!

网上有很多,找了好多还是找个最好用,推荐给大家:Banner图:ASCII艺术字(图)集:https://www.bootschool.net/

「我们只需要把这俩文件放到resources文件夹下即可」

或者在resources文件夹下新建一个文件夹专门存放,这时我们要指定到具体文件夹下:

spring:
  banner:
    location: classpath:data/banner.txt

1、banner.txt

我们使用的是springboot2.7.13

我们先准备好文件:

${AnsiColor.BLUE}
${application.title}
                             ,
                              \`-,                             
                              |   `\                           
                              |     \                          
                           __/.- - -.\,__                      
                      _.-'`              `'"'--..,__           
                  .-'`                              `'--.,_    
               .'`   _                         _ ___       `)  
             .'   .'` `'-.                    (_`  _`)  _.-'   
           .'    '--.     '.                 .-.`"`@ .-'""-,   
  .------~'     ,.---'      '-._      _.'   /   `'--'"""".-'   
/`        '   /`  _,..-----.,__ `''''`/    ;__,..--''--'`      
`'--.,__ '    |-'`             `'---'|     |                   
        `\    \                       \   /                    
         |     |                       '-'                     
          \    |                                               
           `\  |                                               
             \/         

///////////////////////////////////////////////////////////////
${AnsiColor.BRIGHT_RED}
${AnsiBackground.BRIGHT_WHITE}
${AnsiStyle.BOLD}
Application Version: ${application.version}
Spring Boot Version: ${spring-boot.version}

作者 ------------ ${application.author}

yml配置:

application:
  version: v1.0
  author: 王振军
  title: =============================大鲨鱼网络平台===========================

spring-boot:
  version: 2.7.13

server:
  port: 9212

我们来说一下以下参数:

参数

解释

AnsiColor

颜色,专门有个枚举AnsiColor,自己挑选即可

AnsiBackground

背景色,专门有个枚举AnsiBackground,自己挑选即可

AnsiStyle

文字样式,专门有个枚举AnsiStyle,自己挑选即可

剩下的就是自定义的字段了!

2、图片

本来想的两个同时存在会怎么打印,但是高版本的springboot限制了,我先弄的txt,加上图片后没有图片内容!

于是我把springboot版本降到2.4.9,「两个同时存在就会先打印图片然后打印txt的内容!」

显示太高了,这里可以配置图片的长宽等信息

spring:
  banner:
    image:
      height: 30

需要在图片前后打印一些信息可以在代码中写:

您还可以使用该spring.main.banner-mode属性来确定是否必须打印横幅System.out( console)、发送到配置的记录器 ( log),还是根本不生成横幅 ( off)。

「打印的横幅以以下名称注册为单例 bean:springBootBanner。」

「同时存在:springboot高版本是不会显示两个的!!」

四、总结

通过自定义启动 Banner,我们可以为我们的 Spring Boot 项目增添一些个性化的特色。这不仅可以提供更好的用户体验,还能展示我们的专业形象和品牌价值观。自定义 Banner 不仅限于文本,我们还可以使用图片等其他媒体类型来展示,让应用程序更加生动有趣。更多好玩的,大家慢慢去探索哈!!

责任编辑:姜华 来源: 小王博客基地
相关推荐

2021-01-07 05:24:38

SpringbootSpringBanner

2023-02-20 15:20:43

启动页组件鸿蒙

2009-08-10 16:58:45

ASP.NET安装部署

2023-10-11 07:57:23

springboot微服务

2017-10-25 14:07:54

APPiOSxcode

2011-08-03 17:38:30

iPhone NSUserDefa 自定义

2021-01-06 05:25:56

项目Springboot应用

2022-09-13 09:02:19

SpringBootStarter机制

2022-06-30 14:02:07

鸿蒙开发消息弹窗组件

2011-08-02 11:17:13

iOS开发 View

2021-10-26 10:07:02

鸿蒙HarmonyOS应用

2022-07-15 16:45:35

slider滑块组件鸿蒙

2015-02-11 17:49:35

Android源码自定义控件

2023-08-10 17:14:52

鸿蒙自定义弹窗

2022-06-20 15:43:45

switch开关鸿蒙

2015-02-12 15:33:43

微信SDK

2021-09-26 05:02:00

缓存Ehcache用法

2024-10-09 10:46:41

springboot缓存redis

2021-02-20 11:40:35

SpringBoot占位符开发技术

2024-07-02 11:42:53

SpringRedis自定义
点赞
收藏

51CTO技术栈公众号