1 查看spirngboot 官方文档

https://docs.spring.io/spring-boot/docs/2.0.6.RELEASE/reference/htmlsingle/#boot-features-banner

通过阅读springboot的文档发现一个有意思的东西 自定义banner,具体内容如下:

springboot 自定义日志输出banner

 根据上述内容我们可以得知不仅可以通过文本 我们还可以通过图片来自定义banner 。本着打破沙锅问到底的精神。我们继续往下看。通过下图信息我们可以知道spirngboot提供了一个Banner的接口来进行控制是否使用Banner 和通过什么方式进行Banner的打印。

springboot 自定义日志输出banner

springboot 自定义日志输出banner

2 阅读spirngBoot 处理Banner的源码

springboot 定义了一个接口 Banner 来指定打印的方式和是否启用banner 。我们找找Banner接口看看那些类实现了它。

springboot 自定义日志输出banner

我们点击ResourceBanner 看看如何实现banner的打印 

springboot 自定义日志输出banner

通过上面的代码我们可以清晰知道 他是将获取resource的输入流然后打印, 那我们就在看看 这个resource是在什么时候给他的

springboot 自定义日志输出banner springboot 自定义日志输出banner

关于文本Banner springboot优先看配置文件有没有配置 spirng.banner.location 如果有就走配置文件的内容,如果没有就走resource目录下 banner.txt文件的内容。 

 springboot 自定义日志输出bannerspringboot 自定义日志输出banner

关于图片Banner springboot优先看配置文件有没有配置 spirng.banner.image.location 如果有就走配置文件的内容,如果没有就走resource目录下  banner.gif 或 banner.jpg 或 banner.png 图片的内容。

springboot 自定义日志输出banner springboot 自定义日志输出banner

springboot 启动获取Banner逻辑: spirngBoot在启动的时候会先显示ImageBanner, 然后就是 TextBanner  如果都没有就显示默认的Banner。springboot 自定义日志输出banner

springboot 自定义日志输出banner springboot 自定义日志输出banner

 看到这里是不是有点恍然大明白的赶脚。

3 自定义banner 实战

3.1 自定义文本Banner

原理看明白啦 ,接下来上代码了。首先我们通过最简单的方式在resource目录下创建一个banner.txt 

我们可以通过http://www.network-science.de/ascii (文字转文本)https://www.fontke.com/tool/image2ascii/(图片转文本)来定义我们想要的文本内容。

banner.txt 内容如下

.........................................................................................................................................................................
............................,]]/@@@@@@@O.................................................................................................................................
...................,][email protected]@@@@@@@@@@@@@@@@@\................................................................................................................................
...............,/@@@@@@@@@@@@@@@@@@@@@@@@@@\`............................................................................................................................
............./@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@`..........................................................................................................................
...........,@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@...........                _             _                 _  ...........................................................
[email protected]@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@`......... ___ _ __  _ __(_)_ __   __ _| |__   ___   ___ | |_ ..........................................................
[email protected]@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@`......../ __| '_ \| '__| | '_ \ / _` | '_ \ / _ \ / _ \| __|..........................................................
[email protected]@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@O........\__ \ |_) | |  | | | | | (_| | |_) | (_) | (_) | |_ ..........................................................
........,@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@........|___/ .__/|_|  |_|_| |_|\__, |_.__/ \___/ \___/ \__|..........................................................
[email protected]@@@@@@@@`,[@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@^.......    |_|                 |___/                       ..........................................................
[email protected]@@@@@@@^        .,[[[email protected]@@@@@@@@@@@@@@@@@@@^....... ____    ___   ____   ____  _____ _     _____    _    ____  _____ ............................................
[email protected]@@@@@@^/@\]                [@@@@,\@@@@@@@........|___ \  / _ \ | ___| |  _ \| ____| |   | ____|  / \  / ___|| ____|............................................
........./@@@@@@[[[[@@@]           /@@O[[[[\ [email protected]@@@^........  __) || | | ||___ \ | |_) |  _| | |   |  _|   / _ \ \___ \|  _|  ............................................
[email protected]`@@@@^    ,`   ,`       ,`    .]    [email protected]@@/\\....... / __/ | |_| | ___) ||  _ <| |___| |___| |___ / ___ \ ___) | |___ ............................................
[email protected]^ [email protected]@^    [email protected]@\                [email protected]@\.  [email protected]@/  @^......|_____(_)___(_)____(_)_| \_\_____|_____|_____/_/   \_\____/|_____|............................................
[email protected]^  .,@.   [email protected]@@                [email protected]@@.  @^   [email protected]`....................................................................................................................
.......,@`   [email protected]                             =/   ,@^.......     _                       _                       _                             ........................... 
.........,@@@@@\                           [email protected]@@@@[......... ___| |__  _   _  ___   __ _(_) __ _ _ __  _ __ ___ (_)_ __   __ _ _   _ _   _  ___........................... 
...............\^                         [email protected]|_  / '_ \| | | |/ _ \ / _` | |/ _` | '_ \| '_ ` _ \| | '_ \ / _` | | | | | | |/ _ \..........................
[email protected]^   [email protected]@/[@[[\/[\@[\[email protected]   ,@`............... / /| | | | |_| | (_) | (_| | | (_| | | | | | | | | | | | | | (_| | |_| | |_| |  __/..........................
.................\\.   \@/ \,`=`^ \@/   /@`................/___|_| |_|\__,_|\___/ \__, |_|\__,_|_| |_|_| |_| |_|_|_| |_|\__, |\__, |\__,_|\___|..........................
...................\@\`   ,[[OO[[`  .]@/`..................                          |_|                                |___/ |___/            ..........................
.....................,/@@\`     ,]@@O....................................................................................................................................
.................../@@@@\ .[[[[[. ,@@@@@`.................. _  _ _    _ ____   __                   ____  _ ____   __                       .............................
.................,@@@@@^\@\    ./@@`@@@@@\.................| |(_) | _/ |___ \ / /___      ___   _  / __ \/ |___ \ / /_   ___ ___  _ __ ___  .............................
................/@@@@@@   \@@@@@/`  @@@@@@\................| || | |/ / | __) | '_ \ \ /\ / / | | |/ / _` | | __) | '_ \ / __/ _ \| '_ ` _ \ .............................
[email protected]@@@@@^             [email protected]@@@@@^...............| || |   <| |/ __/| (_) \ V  V /| |_| | | (_| | |/ __/| (_) | (_| (_) | | | | | |.............................
[email protected]@@@@`[email protected]@@` , ,@@@^[email protected]@@@@@`...............|_|/ |_|\_\_|_____|\___/ \_/\_/  \__, |\ \__,_|_|_____|\___(_)___\___/|_| |_| |_|.............................                                  
[email protected]   @@       =      ,@/[[email protected]`............... |__/                            |___/  \____/                                   .............................

将该文件放入到resource目录下然后启动spirngboot项目

springboot 自定义日志输出banner springboot 自定义日志输出banner

3.1 自定图片Banner 

我们将一个图片的名称改改为banner.jpg 图片内容如下:

springboot 自定义日志输出banner

启动springboot项目 日志内容如下:

 springboot 自定义日志输出banner

3.3 通过配置文件定义文本Banner 和图片Banner 

由于我们的图片有点大所以将图片宽和高改成了10px 所以显示的有点小。yml配置文件内容如下

springboot 自定义日志输出banner

我们也可以通过配置文件来自定我们具体要显示的图片和文本的地址来进行显示,项目启动后显示的就是我们配置的文本和图片了。 我们可以可以定义一个gif的图片 启动的时候效果更炫偶。

 4 demo 工具以及版本说明

开发工具:Spring Tool Suite (STS)

JDK版本:1.8.0_144

springboot版本:2.0.5.RELEASE

 

 

相关文章: