SpringBoot中banner怎么使用-創(chuàng)新互聯(lián)

這篇文章主要介紹“SpringBoot中banner怎么使用”的相關(guān)知識(shí),小編通過實(shí)際案例向大家展示操作過程,操作方法簡單快捷,實(shí)用性強(qiáng),希望這篇“SpringBoot中banner怎么使用”文章能幫助大家解決問題。

站在用戶的角度思考問題,與客戶深入溝通,找到永勝網(wǎng)站設(shè)計(jì)與永勝網(wǎng)站推廣的解決方案,憑借多年的經(jīng)驗(yàn),讓設(shè)計(jì)與互聯(lián)網(wǎng)技術(shù)結(jié)合,創(chuàng)造個(gè)性化、用戶體驗(yàn)好的作品,建站類型包括:成都網(wǎng)站設(shè)計(jì)、成都網(wǎng)站制作、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣、國際域名空間、虛擬空間、企業(yè)郵箱。業(yè)務(wù)覆蓋永勝地區(qū)。

制作自己的banner

第一步:在src/main/resources下面創(chuàng)建banner.txt。

第二步:訪問網(wǎng)站 http://patorjk.com/software/taag,在網(wǎng)站“Type Something ”處輸入想要制作的單詞(比如:Hello World),會(huì)生成對(duì)應(yīng)的字符。也可以通過其他參數(shù)來調(diào)整字符的樣式。

SpringBoot中banner怎么使用

復(fù)制生成的字符,粘貼到banner.txt,再次啟動(dòng)程序便可以打印出指定的banner了。

個(gè)人比較喜歡的banner是如下圖形:

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

在新版本的SpringBoot中,支持了gif、jpg和png的圖片形式的banner打印。當(dāng)然,并不會(huì)把圖片直接打印在控制臺(tái),而是將其像素解析轉(zhuǎn)換成assii編碼之后打印。

對(duì)于gif動(dòng)圖,會(huì)把動(dòng)圖的每個(gè)圖片都打印出來,如果動(dòng)圖比較大,打印時(shí)間較長??梢試L試一下,但建議不要使用gif。

在banner.txt中,還可以進(jìn)行一些設(shè)置,比如上圖中的${AnsiColor.BRIGHT_YELLOW}。

  • AnsiColor.BRIGHT_RED:設(shè)置控制臺(tái)中輸出內(nèi)容的顏色

  • application.version:用來獲取MANIFEST.MF文件中的版本號(hào)

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

  • spring-boot.version:Spring Boot的版本號(hào)

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

Banner接口

在未指定banner.txt或banner圖片時(shí),默認(rèn)圖形存儲(chǔ)在哪里了呢?下面我們了解一下Banner接口。

@FunctionalInterface
public interface Banner {
  // 打印banner
  void printBanner(Environment environment, Class<?> sourceClass, PrintStream out);
  enum Mode {
    // 關(guān)閉
    OFF,
    // 控制臺(tái)
    CONSOLE,
    // 日志文件
    LOG
  }
}

在banner接口中提供了打印banner的方法和一個(gè)枚舉類。枚舉類有三個(gè)值:OFF、CONSOLE、LOG,用來控制banner的打印,分別對(duì)應(yīng):關(guān)閉打印、控制臺(tái)打印和日志打印。

banner接口的實(shí)現(xiàn)主要有ResourceBanner、ImageBanner、SpringBootBanner和其他內(nèi)部類的實(shí)現(xiàn)。其中上面看到的圖形的打印就來自于SpringBootBanner??匆幌略创a:

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的方法實(shí)現(xiàn)中,首先打印了默認(rèn)的Banner字符串?dāng)?shù)組,然后將SPRING_BOOT和版本信息進(jìn)行拼接打印。

Banner的參數(shù)設(shè)置

banner的參數(shù)設(shè)定可以通過兩種形式,一種是代碼的形式,一種是配置文件的形式。

使用代碼的形式首先要將默認(rèn)的main方法進(jìn)行改造,手動(dòng)創(chuàng)建SpringApplication對(duì)象,然后設(shè)置相應(yīng)的參數(shù)。示例代碼:

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);
}

通過配置文件設(shè)置就比較簡單,直接在application.properties中進(jìn)行配置,springboot已經(jīng)幫我們預(yù)制好了相應(yīng)的參數(shù)。

spring.banner.location=classpath:banner1.png
spring.banner.image.margin=2
spring.banner.image.height=76
spring.banner.charset=UTF-8
spring.banner.image.invert=false
spring.banner.image.location=banner1.png
spring.main.banner-mode=console
spring.main.show-banner=true

其中spring.main.show-banner來控制是否打印banner,在新版本中不建議使用,可以使用spring.main.banner-mode代替,將其值設(shè)置為OFF即可關(guān)閉banner的打印。

引入文本banner通過spring.banner.location來指定,引入圖片相關(guān)的banner需要通過spring.banner.image.location來指定路徑,否則會(huì)出現(xiàn)亂碼情況。

如果不想顯示banner,可以在代碼中通過setBannerMode(Banner.Mode.OFF)方法或通過參數(shù)配置spring.main.banner-mode=off來關(guān)閉banner的打印。上面示例中已經(jīng)有所展示。

關(guān)于“SpringBoot中banner怎么使用”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識(shí),可以關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,小編每天都會(huì)為大家更新不同的知識(shí)點(diǎn)。

分享題目:SpringBoot中banner怎么使用-創(chuàng)新互聯(lián)
標(biāo)題URL:http://bm7419.com/article14/gjcde.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供小程序開發(fā)、自適應(yīng)網(wǎng)站云服務(wù)器、域名注冊(cè)、品牌網(wǎng)站制作、網(wǎng)站制作

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

商城網(wǎng)站建設(shè)