zoukankan      html  css  js  c++  java
  • SpringBoot 教程之 banner 定制

    目录

    简介

    Spring Boot 启动时默认会显示以下 LOGO:

      .   ____          _            __ _ _
     /\ / ___'_ __ _ _(_)_ __  __ _    
    ( ( )\___ | '_ | '_| | '_ / _` |    
     \/  ___)| |_)| | | | | || (_| |  ) ) ) )
      '  |____| .__|_| |_|_| |_\__, | / / / /
     =========|_|==============|___/=/_/_/_/
     :: Spring Boot ::        (v2.1.1.RELEASE)

    实际上,Spring Boot 支持自定义 logo 的功能。

    让我们来看看如何实现的。

    只要你在 resources 目录下放置名为 banner.txtbanner.gif 、banner.jpg 或 banner.png 的文件,Spring Boot 会自动加载,将其作为启动时打印的 logo。

    • 对于文本文件,Spring Boot 会将其直接输出。
    • 对于图像文件( banner.gif 、banner.jpg 或 banner.png ),Spring Boot 会将图像转为 ASCII 字符,然后输出。

    变量

    banner.txt 文件中还可以使用变量来设置字体、颜色、版本号。

    变量描述
    ${application.version} MANIFEST.MF 中定义的版本。如:1.0
    ${application.formatted-version} MANIFEST.MF 中定义的版本,并添加一个 v 前缀。如:v1.0
    ${spring-boot.version} Spring Boot 版本。如:2.1.1.RELEASE.
    ${spring-boot.formatted-version} Spring Boot 版本,并添加一个 v 前缀。如:v2.1.1.RELEASE
    ${Ansi.NAME} (or ${AnsiColor.NAME}${AnsiBackground.NAME}${AnsiStyle.NAME}) ANSI 颜色、字体。更多细节,参考:AnsiPropertySource
    ${application.title} MANIFEST.MF 中定义的应用名。

    示例:

    在 Spring Boot 项目中的 resources 目录下添加一个名为 banner.txt 的文件,内容如下:

    ${AnsiColor.BRIGHT_YELLOW}${AnsiStyle.BOLD}
     ________  ___  ___  ________   ___       __   ___  ___
    |   ___ |  |  |   ___  |       |  |  |  
       _|    \     \                \  
         \    \     \        __      \  
         \_\    \     \      |\___     \  
        \_______ \_______ \__\ \__ \____________ \_______
        |_______||_______||__| |__||____________||_______|
    ${AnsiBackground.WHITE}${AnsiColor.RED}${AnsiStyle.UNDERLINE}
    :: Spring Boot ::             (v${spring-boot.version})
    :: Spring Boot Tutorial ::    (v1.0.0)

    注:${} 设置字体颜色的变量之间不能换行或空格分隔,否则会导致除最后一个变量外,都不生效。

    启动应用后,控制台将打印如下 logo:

    推荐两个生成字符画的网站,可以将生成的字符串放入这个banner.txt 文件:

    配置

    application.properties 中与 Banner 相关的配置:

    # banner 模式。有三种模式:console/log/off
    # console 打印到控制台(通过 System.out)
    # log - 打印到日志中
    # off - 关闭打印
    spring.main.banner-mode = off
    # banner 文件编码
    spring.banner.charset = UTF-8
    # banner 文本文件路径
    spring.banner.location = classpath:banner.txt
    # banner 图像文件路径(可以选择 png,jpg,gif 文件)
    spring.banner.image.location = classpath:banner.gif
    used).
    # 图像 banner 的宽度(字符数)
    spring.banner.image.width = 76
    # 图像 banner 的高度(字符数)
    spring.banner.image.height =
    # 图像 banner 的左边界(字符数)
    spring.banner.image.margin = 2
    # 是否将图像转为黑色控制台主题
    spring.banner.image.invert = false

    当然,你也可以在 YAML 文件中配置,例如:

    spring:
      main:
        banner-mode: off

    编程

    默认,Spring Boot 会注册一个 SpringBootBanner 的单例 Bean,用来负责打印 Banner。

    如果想完全个人定制 Banner,可以这么做:先实现 org.springframework.boot.Banner#printBanner 接口来自己定制 Banner。在将这个 Banner 通过 SpringApplication.setBanner(…) 方法注入 Spring Boot。

    示例

    示例源码:spring-boot-banner

    参考资料

  • 相关阅读:
    LeetCode 81 Search in Rotated Sorted Array II(循环有序数组中的查找问题)
    LeetCode 80 Remove Duplicates from Sorted Array II(移除数组中出现两次以上的元素)
    LeetCode 79 Word Search(单词查找)
    LeetCode 78 Subsets (所有子集)
    LeetCode 77 Combinations(排列组合)
    LeetCode 50 Pow(x, n) (实现幂运算)
    LeetCode 49 Group Anagrams(字符串分组)
    LeetCode 48 Rotate Image(2D图像旋转问题)
    LeetCode 47 Permutations II(全排列)
    LeetCode 46 Permutations(全排列问题)
  • 原文地址:https://www.cnblogs.com/aimei/p/12201475.html
Copyright © 2011-2022 走看看