如何打造讓人眼前一亮的Spring Boot Banner設計

一、選擇合適的工具

Spring Boot Banner是一種在應用程序啟動時顯示的自定義圖像,可以為應用程序添加專業和有趣的外觀。如果你想要打造一個讓人眼前一亮的Spring Boot Banner設計,需要選擇一種合適的工具。

常用的工具有字符畫生成器和圖片轉字符工具。

1.字符畫生成器

字符畫是通過將像素的模擬空間映射到製表符和其他字符的空間,生成的一種類似圖片、圖案的文字。

在Java中,我們可以使用ASCII藝術字生成器(http://www.kammerl.de/ascii/AsciiSignature.php)生成自定義的字符畫,或使用Figlet(http://www.figlet.org/)生成高質量的字符畫。

以下是使用ASCII藝術字生成器生成的Spring Boot Banner設計的代碼片段:

System.out.println("");
System.out.println("                 __    __                    __                    ");
System.out.println(" .-----.-----.--|  |--|  |.-----.--.--.----.|__|.-----.---.-.----. ");
System.out.println(" |  _  |  _  |  _  <|  ||  -__|  |  |  __||  ||  _  |  _  |  __| ");
System.out.println(" |___  |___  |_____||__||_____|_____|____||__||_____|___._|____| ");
System.out.println(" |_____|_____|                                                 ");

2.圖片轉字符工具

圖片轉字符工具是將圖片轉換為字符畫的工具。

在Java中,我們可以使用開源庫:JavaFiglet(https://github.com/heikoseeberger/javafiglet)實現圖片轉字符。

以下是使用JavaFiglet生成的Spring Boot Banner設計的代碼片段:

FigletFont customFont = FigletFont.create(new URL("http://www.jave.de/figlet/fonts/slscript.flf"));
String asciiArtBanner = FigletRenderer.render(customFont, "SPRING" + System.lineSeparator() + "BOOT");
System.out.println(asciiArtBanner);

二、自定義顏色和樣式

除了使用字符畫生成器或圖片轉字符工具外,我們還可以自定義Spring Boot Banner的顏色和樣式,從而打造一個讓人眼前一亮的設計。

在Spring Boot中,我們可以通過在src/main/resources下創建banner.txt或banner.*文件,並在其中添加特定字符來自定義Banner樣式。

以下是一個自定義顏色和樣式的代碼片段:

${AnsiColor.RED}
${AnsiStyle.BOLD}                __    __                    __                   
${AnsiStyle.NORMAL} .-----.-----.--|  |--|  |.-----.--.--.----.|__|.-----.---.-.----.
${AnsiStyle.NORMAL} |  _  |  _  |  _  <|  ||  -__|  |  |  __||  ||  _  |  _  |  __|
${AnsiStyle.NORMAL} |___  |___  |_____||__||_____|_____|____||__||_____|___._|____|
${AnsiStyle.NORMAL} |_____|_____|                                                     
${AnsiColor.DEFAULT}

三、添加動畫效果

為了吸引眼球,我們可以在Banner中添加一些動畫效果。Spring Boot提供了一個Spring Boot Banner圖標動畫的工具庫:Indicators(https://github.com/ctongfei/progressbar)。

以下是應用Indicators生成的圖標動畫代碼片段:

Spinners spinner = new Spinners(Spinners.SpinnersName.DEFAULT);
System.out.println(spinner.next() + " SPRING BOOT APPLICATION " + spinner.next());

四、完整代碼示例

綜合以上的三個方面,我們可以在Spring Boot中創建一個自定義Banner,以打造一個讓人眼前一亮的設計。

以下是一個完整的示例代碼:

import com.github.javafaker.Faker;
import me.tongfei.progressbar.ProgressBar;
import me.tongfei.progressbar.ProgressBarStyle;
import me.tongfei.progressbar.indeterminate.IndeterminateProgressBar;
import me.tongfei.progressbar.indeterminate.ProgressIndicators;
import me.tongfei.progressbar.indeterminate.style.DotsProgressBarStyle;
import me.tongfei.progressbar.indeterminate.style.LettyProgressBarStyle;
import org.springframework.boot.Banner;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.WebApplicationType;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.context.ConfigurableApplicationContext;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Lazy;
import org.springframework.scheduling.annotation.EnableAsync;
import org.springframework.scheduling.annotation.EnableScheduling;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

@SpringBootApplication
@RestController
@EnableScheduling
@EnableAsync
public class BannerDemoApplication {

    public static void main(String[] args) {
        ConfigurableApplicationContext context = new SpringApplicationBuilder(BannerDemoApplication.class)
                .web(WebApplicationType.SERVLET)
                .banner(new CustomBanner())
                .run(args);
    }

    @GetMapping("/")
    public String home() {
        return "Hello World!";
    }

    static class CustomBanner implements Banner {

        @Lazy
        @Bean
        public ProgressBar progressBar() {
            return new ProgressBar("Test progress", 100,
                    new DotsProgressBarStyle().withColorScheme(new ProgressBar.SymbloxColorScheme(
                            ProgressBarStyle.ASCII, ProgressBar.Color.BLUE, ProgressBar.Color.CYAN, ProgressBar.Color.GREEN)))
                    .start();
        }

        @Override
        public void printBanner(ConfigurableApplicationContext configurableApplicationContext, Class aClass, java.io.PrintStream printStream) {
            ProgressBar progressBar = configurableApplicationContext.getBean(ProgressBar.class);
            FakeValuesService fakeValuesService = new FakeValuesService(new Locale("en-GB"), new Faker());
            String name = fakeValuesService.name().fullName();
            progressBar.maxHint(10);
            progressBar.bar();
            progressBar.stepTo(2);
            progressBar.step();
            progressBar.setExtraMessage("Loading Spring Boot");
            progressBar.stepTo(4);
            progressBar.step();
            progressBar.setExtraMessage("Initializing application");
            progressBar.stepTo(6);
            progressBar.step();
            progressBar.setExtraMessage("Setting up environment");
            progressBar.stepTo(8);
            progressBar.step();
            progressBar.setExtraMessage("Starting server");
            progressBar.stepTo(10);
            progressBar.step();
            printStream.println("Welcome " + name + " to Spring Boot!");
        }
    }

}

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/285528.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-12-22 15:44
下一篇 2024-12-22 15:44

相關推薦

  • CakeyFrameAnimation:如何打造動態網頁效果

    一、什麼是CakeyFrameAnimation CakeyFrameAnimation是一種JavaScript 庫,它可以通過幀的方式對網站中的元素進行動態修改,實現動態網頁效…

    編程 2025-01-11
  • Web設計公司:如何打造用戶體驗優秀的網站?

    隨着互聯網的不斷發展和普及,各個行業都開始逐步轉移至線上,因此建設一個用戶體驗優秀的網站成為了各個公司招攬客戶、提高知名度的必要手段。但是,一些公司在網站建設的過程中忽視了用戶體驗…

    編程 2025-01-02
  • C#微服務開發:如何打造高效、可擴展的應用程序

    一、微服務架構概述 微服務架構是指將應用程序拆分成一組小型服務,每個服務都可以獨立進行開發和部署,服務之間通過輕量級的通信機制進行通信,並可以基於不同技術棧實現,從而降低應用程序的…

    編程 2024-12-29
  • 讓人驚嘆的移動文本編輯器功能

    隨着移動計算設備的普及,越來越多的人開始使用移動設備進行工作和生活。移動文本編輯器作為其中的一種應用程序,受到了人們的廣泛關注。而如今,移動文本編輯器不僅僅是可以進行文字的輸入和編…

    編程 2024-12-12
  • 如何打造一個專業的網頁設計

    一、目標受眾 在創作網頁設計之前,我們需要先確定目標受眾。是面向年輕人,還是中老年人?是面向技術專業人士,還是普通用戶?不同的目標受眾需要不同的設計風格和元素。 如果目標受眾是年輕…

    編程 2024-12-07
  • 使用Flexbox布局:如何打造高效的網頁布局?

    一、Flexbox是什麼? Flexbox是CSS3新增的一種視圖模式,用於進行更加有效的網頁布局。使用Flexbox可以讓網頁布局更加靈活,適應不同的屏幕尺寸和頁面結構,同時也能…

    編程 2024-12-05
  • 如何打造一個高效的網站

    在如今的互聯網時代,網站已經成為各行各業展示和推廣自己的重要渠道。一家好的網站,不僅需要美觀大方,還需要高效穩定,因此,本文將從多個方面詳細介紹如何打造一個高效的網站。 一、界面設…

    編程 2024-12-05
  • Banner生成工具與設計

    一、Banner生成工具 1、什麼是Banner 在互聯網上,Banner是一種常見的廣告形式,通常採用圖片或Flash視頻作為介質,公司或個人可以通過Banner來宣傳自己或自己…

    編程 2024-12-04
  • com.youth.banner使用指南

    在Android應用中,輪播圖是一種經常使用的界面元素,它能夠將多張圖片輪流展示,讓應用看起來更加生動。其中,com.youth.banner是一款很流行的第三方輪播圖框架,它基於…

    編程 2024-11-29
  • 如何讓SpringBoot顯示自定義Banner?

    一、什麼是SpringBoot的Banner? 在講解如何自定義SpringBoot的Banner之前,我們需要先了解一下什麼是SpringBoot的Banner。當我們啟動一個S…

    編程 2024-11-29

發表回復

登錄後才能評論