1. 程式人生 > >springboot啟動banner圖片

springboot啟動banner圖片

SpringBoot啟動的時候會列印了預設在resource下面banner.txt裡面的內容,突然好奇,就大概看下原始碼,記個筆記,比較簡單.
首先,banner有個開關:

   SpringApplication springApplication = new SpringApplication(RunApplication.class);
        //控制檯列印
//       springApplication.setBannerMode(Banner.Mode.CONSOLE);
        //關閉
        springApplication.setBannerMode
(Banner.Mode.OFF); springApplication.run(args);

Mode對應的列舉比較簡單:

		OFF,
        CONSOLE,
        LOG;

然後點到run方法裡面去,一眼看見printBanner字樣:
在這裡插入圖片描述
點到this.printBanner方法裡面去:
在這裡插入圖片描述
在一開始設定的開關那裡,set方法賦值進去了, springApplication.setBannerMode(Banner.Mode.OFF);如果為OFF就不列印:
在這裡插入圖片描述
如果開啟的話,就先獲得資源載入器ResourceLoader,ResourceLoader內部預設是以classpath:開頭的,所以,我們只需要在resource下面建立banner.txt即可.
在這裡插入圖片描述


然後根據載入器和列印的Model列舉初始化SpringApplicationBannerPrinter,這個類就是列印banner的具體類了,然後主要列印方法就是print方法,其他方法就是獲取不同的banner,然後再下面的靜態內部類,我也不是很懂,希望大佬留言教教我…然後列印就兩個方法,一個日誌列印,一個流列印.
在這裡插入圖片描述
在這裡插入圖片描述
然後日誌列印的話,就根據createStringFromBanner這個方法獲取Stirng字串,然後日誌列印,
控制檯輸出的話,就是根據先根據環境獲取對應的Banner,實現Banner(裡面就列印方法)介面主要一個圖片banner,和資源banner,這裡應該是ResourceBanner資源banner,然後呼叫ResourceBanner裡面的printBanner方法.,裡面就有我們熟悉的 System.out.println()了.
在這裡插入圖片描述

在這裡插入圖片描述
中間一些PropertyResolver我感覺應該是做一些解析,但具體,也不是很懂,萌新希望大佬留言指點指點.以上就是springboot載入banner圖片的大概流程.然後,那我們自己想實現一個簡單的列印banner呢?那就解析banner.txt檔案轉換為字串,然後直接打印出來即可.
在這裡插入圖片描述
可以寫在啟動完成之後,也可以寫在之前,就是讀取檔案,轉為String打印出來…