2 回答
TA贡献1963条经验 获得超6个赞
依次在 Classpath 下找 文件 banner.gif, banner.jpg, 和 banner.png, 先找到谁就用谁
继续 Classpath 下找 banner.txt
上面都没有找到的话, 用默认的 SpringBootBanner, 就是我们最常见到的那个!
TA贡献2003条经验 获得超2个赞
Spring Boot 默认寻找 Banner 的顺序是:
依次在 Classpath 下找 文件 banner.gif , banner.jpg , 和 banner.png , 先找到谁就用谁
继续 Classpath 下找 banner.txt
上面都没有找到的话, 用默认的 SpringBootBanner , 就是我们最常见到的那个
既然是 Classpath 的资源, 我们按照 Maven 项目的惯例, 是把 banner.* 文件放在 src/main/resources/ 目录下.
我们可以用属性 banner.location 设定 Spring Boot 在不同于 Classpath 下找以上 banner.txt 文件. banner.charset 设定 banner.txt 的字符集, 默认为 UTF-8 . 属性. banner.image.location 用于指定寻找 banner.(gif|jpg|png) 文件的位置.
如果同时存在图片(如 banner.jpg) 和 banner.txt , 则它们会同时显示出来, 先图片后文字. 但同时存在多个图片 banner.(gif|jpg|png) , 则只会显示第一张图片.
下面依次介绍 图片 Banner, 文字 Banner, 和代码定制法, 其中 文字 Banner 只须在 src/main/resources 加上 banner.txt 应该是最简单实用的, 其次就是用简洁的 banner 图片 .
图片 Banner
我们或许有疑问了, 对于图片文件 banner.(gif|jpg|png) 文件, Spring Boot 该如何在控制台显示. 由于我们的控制台只管显示字符, 所以 Spring Boot 会尽力把这三种图片文件转换成字符表示, 还带有 AnsiColor 颜色的.
想要知道 Spring Boot 的 ImageBanner 对图片的理解程序到底有多强, 可以试下把这张图片放到 src/main/resources/ 下,
然后重新启动一下我们的 Spring Boot 程序, 可以看到如下效果
把图片转换成带色的字符显示已经很不错的了, 当然你不能太难为 Spring Boot 了, 图片色彩稍复杂肯定是一团糟. 图片到文字的转换的实际效果可以尝试 Spring Boot 官方的 Banner Generator .
文字 Banner
如果使用 banner.txt 定义 Banner 的话, 里面可以使用如下变量
${application.version} , ${application.formatted-version} , ${spring-boot.version} , ${Ansi.NAME} 或 ${AnsiColor .NAME} , ${AnsiBackground.NAME} , ${AnsiStyle.NAME} , ${application.title} , 这些具体定义请参考 Spring Boot 的官方文档 Customizing the Banner .
这里说一下 AnsiColor , AnsiStyle , 和 AnsiBackground 的用法, 它们是各种 Ansi 控制符 , 见 Wiki ANSI escape code . 可取值请参考各自相应的类, org.springframework.boot.ansi.(AnsiColor|AnsiStyle|AnsiStyle) . 分别用于定义字符在控制台下显示的颜色, 风格与背景色.
这里有一个 banner.txt , 内容是
${AnsiColor.RED}${AnsiStyle.ITALIC}I'm Red and italic ${AnsiStyle.NORMAL}${AnsiColor.DEFAULT}
${AnsiColor.BLUE}${AnsiBackground.YELLOW}I'm Blue with yellow background${AnsiBackground.DEFAULT}${AnsiColor.DEFAULT}
${AnsiColor.GREEN}Powered by ${spring-boot.formatted-version}${AnsiColor.DEFAULT}
执行 Spring Boot 应用后输出对应的 Banner 如下图
另外, 如果我们不满足于定义在 banner.txt 中的文字原本平实的显示出来, 也可以像默认的
Spring Boot 的 Banner 那样, 把字符串转换为特殊字符组成的艺术字体, 这还有一个专用名词 TAAG(Text to
- 2 回答
- 0 关注
- 565 浏览
添加回答
举报