springboot啟動banner圖片
阿新 • • 發佈:2018-11-13
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打印出來…