您好,登錄后才能下訂單哦!
今天就跟大家聊聊有關Banner怎么在SpringBoot中使用,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結了以下內容,希望大家根據這篇文章可以有所收獲。
Spring Boot在啟動項目時,控制臺會打印一個Spring的logo。如果不做任何配置
該信息來源于SpringBootBanner類的靜態常量BANNER,該屬性是一個字符串數組,不指定任何banner屬性時,控制臺默認輸出該數組數據。我們可以通過Spring Boot提供的強大配置功能來改變banner的輸出。
通常長成這樣
一個Spring撲面而來~
那么我們能否定制自己的啟動頁呢?
源碼
SpringBoot在啟動時會調用如下一段代碼
private Banner printBanner(ConfigurableEnvironment environment) { if (this.bannerMode == Banner.Mode.OFF) { return null; } ResourceLoader resourceLoader = this.resourceLoader != null ? this.resourceLoader : new DefaultResourceLoader(getClassLoader()); SpringApplicationBannerPrinter bannerPrinter = new SpringApplicationBannerPrinter( resourceLoader, this.banner); if (this.bannerMode == Mode.LOG) { return bannerPrinter.print(environment, this.mainApplicationClass, logger); } return bannerPrinter.print(environment, this.mainApplicationClass, System.out); } public Banner print(Environment environment, Class<?> sourceClass, PrintStream out) { Banner banner = getBanner(environment, this.fallbackBanner); banner.printBanner(environment, sourceClass, out); return new PrintedBanner(banner, sourceClass); } private Banner getBanner(Environment environment, Banner definedBanner) { Banners banners = new Banners(); banners.addIfNotNull(getImageBanner(environment)); banners.addIfNotNull(getTextBanner(environment)); if (banners.hasAtLeastOneBanner()) { return banners; } if (this.fallbackBanner != null) { return this.fallbackBanner; } return DEFAULT_BANNER; } private static final Banner DEFAULT_BANNER = new SpringBootBanner();
而 SpringBootBanner長成這樣
/** * Default Banner implementation which writes the 'Spring' banner. * * @author Phillip Webb */ 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 + ")"); String padding = ""; while (padding.length() < STRAP_LINE_SIZE - (version.length() + SPRING_BOOT.length())) { padding += " "; } printStream.println(AnsiOutput.toString(AnsiColor.GREEN, SPRING_BOOT, AnsiColor.DEFAULT, padding, AnsiStyle.FAINT, version)); printStream.println(); } }
上述代碼可以看到banner存在兩種 imageBanner和textBanner
imageBanner需要配置屬性為banner.image.location
或者支持名為banner格式為 "gif", "jpg", "png的圖片
textBanner支持默認情況下在banner.location 或者默認為banner.txt
比如我們可以如下設置
在resource分別放置banner.txt和banner.png
banner.png
banner.txt
/$$$$$$$$ /$$$$$$
| $$_____//$$__ $$
| $$ | $$ \__/
| $$$$$ | $$$$$$$
| $$__/ | $$__ $$
| $$ | $$ \ $$
| $$ | $$$$$$/
|__/ \______/
看完上述內容,你們對Banner怎么在SpringBoot中使用有進一步的了解嗎?如果還想了解更多知識或者相關內容,請關注億速云行業資訊頻道,感謝大家的支持。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。