最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

SpringBoot自定義啟動界面的實(shí)現(xiàn)代碼

 更新時間:2024年07月18日 09:12:15   作者:碼農(nóng)研究僧  
實(shí)現(xiàn)自定義啟動動畫是一項(xiàng)有趣的任務(wù),雖然Spring Boot本身不提供內(nèi)置的動畫功能,但可以通過一些技巧來實(shí)現(xiàn),本文主要以Demo的形式展示,再者下面的Demo都可以聯(lián)合使用,需要的朋友可以參考下

前言

實(shí)現(xiàn)自定義啟動動畫是一項(xiàng)有趣的任務(wù),雖然Spring Boot本身不提供內(nèi)置的動畫功能,但可以通過一些技巧來實(shí)現(xiàn)

以下主要以Demo的形式展示,再者下面的Demo都可以聯(lián)合使用

1. banner.text

在資源文件夾(通常是src/main/resources)下放置一個名為banner.txt的文件,來自定義應(yīng)用啟動時的Banner,文件的內(nèi)容會在應(yīng)用啟動時顯示在控制臺中

優(yōu)點(diǎn)如下:簡單且易于實(shí)現(xiàn),且只需在banner.txt文件中定義文本即可,不需要編寫Java代碼
缺點(diǎn)如下:只能顯示靜態(tài)文本或圖案,不支持動態(tài)動畫效果

整體的Demo如下:

.__   __.   ______      .______    __    __    _______
|  \ |  |  /  __  \     |   _  \  |  |  |  |  /  _____|
|   \|  | |  |  |  |    |  |_)  | |  |  |  | |  |  __
|  . `  | |  |  |  |    |   _  <  |  |  |  | |  | |_ |
|  |\   | |  `--'  |    |  |_)  | |  `--'  | |  |__| |
|__| \__|  \______/     |______/   \______/   \______|         

之后啟動應(yīng)用程序即可

截圖如下:

已經(jīng)設(shè)置了banner.txt文件來顯示自定義啟動Banner,但希望在某些情況下關(guān)閉這個Banner

1.1 配置文件關(guān)閉

在Spring Boot的配置文件(例如application.properties或application.yml)中設(shè)置spring.main.banner-mode屬性為off來關(guān)閉Banner

application.properties:

spring.main.banner-mode=off

application.yml:

yaml
復(fù)制代碼
spring:
  main:
    banner-mode: off

1.2 啟動類關(guān)閉

只需要設(shè)置為off即可

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class CustomBannerApplication {
    public static void main(String[] args) {
        SpringApplication app = new SpringApplication(CustomBannerApplication.class);
        app.setBannerMode(Banner.Mode.OFF);
        app.run(args);
    }
}

1.3 命令行關(guān)閉

java -jar your-application.jar --spring.main.banner-mode=off

2. 自定義Banner類

創(chuàng)建一個實(shí)現(xiàn)Banner接口的類,例如CustomBanner:

Demo如下:

import org.springframework.boot.Banner;
import org.springframework.core.env.Environment;
import java.io.PrintStream;

public class CustomBanner implements Banner {
    @Override
    public void printBanner(Environment environment, Class<?> sourceClass, PrintStream out) {
        out.println("Custom Startup Animation");
        for (int i = 0; i < 10; i++) {
            try {
                out.print(".");
                Thread.sleep(500); // 延時0.5秒
            } catch (InterruptedException e) {
                Thread.currentThread().interrupt();
            }
        }
        out.println();
    }
}

在啟動類中設(shè)置自定義Banner

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class CustomBannerApplication {
    public static void main(String[] args) {
        SpringApplication app = new SpringApplication(CustomBannerApplication.class);
        app.setBanner(new CustomBanner());
        app.run(args);
    }
}

相對復(fù)雜的動畫特效如下:

import org.springframework.boot.Banner;
import org.springframework.core.env.Environment;

import java.io.PrintStream;

public class CustomBanner implements Banner {
    @Override
    public void printBanner(Environment environment, Class<?> sourceClass, PrintStream out) {
        out.println("Starting Application...");

        int max = 50;
        for (int i = 0; i <= max; i++) {
            out.print("\r[");
            for (int j = 0; j < max; j++) {
                if (j < i) {
                    out.print("=");
                } else {
                    out.print(" ");
                }
            }
            out.print("] " + i * 2 + "%");
            try {
                Thread.sleep(100); // 延時0.1秒
            } catch (InterruptedException e) {
                Thread.currentThread().interrupt();
            }
        }
        out.println("\nApplication Started.");
    }
}

3. 自動配置類

也可通過自動配置類

import org.springframework.boot.Banner;
import org.springframework.boot.autoconfigure.AutoConfiguration;
import org.springframework.context.annotation.Bean;

@AutoConfiguration
public class BannerAutoConfiguration {

    @Bean
    public BannerApplicationRunner bannerApplicationRunner() {
        return new BannerApplicationRunner();
    }
}

實(shí)現(xiàn)一個BannerApplicationRunner類,包含自定義啟動動畫邏輯:

import org.springframework.boot.ApplicationArguments;
import org.springframework.boot.ApplicationRunner;
import org.springframework.stereotype.Component;

@Component
public class BannerApplicationRunner implements ApplicationRunner {
    @Override
    public void run(ApplicationArguments args) throws Exception {
        System.out.println("Custom Startup Animation");
        for (int i = 0; i < 10; i++) {
            System.out.print(".");
            Thread.sleep(500);
        }
        System.out.println();
    }
}

啟動類無需修改
只需要添加自動加載以及掃描對應(yīng)包即可:

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SuppressWarnings("SpringComponentScan")
@SpringBootApplication(scanBasePackages = {"${info.base-package}.server", "${info.base-package}.module"})
public class ServerApplication {
    public static void main(String[] args) {
        SpringApplication.run(ServerApplication.class, args);
    }
}

總的來說:

  • @AutoConfiguration:確保BannerAutoConfiguration在應(yīng)用啟動時被自動加載
  • @Bean:定義一個bean,這個bean在應(yīng)用啟動時被創(chuàng)建并注冊到Spring容器中
  • @SpringBootApplication:觸發(fā)組件掃描和自動配置

4. 總結(jié)

  • banner.txt方法:適合簡單的靜態(tài)文本展示,易于實(shí)現(xiàn),但缺乏動態(tài)效果
  • 自定義Banner類方法:適合復(fù)雜的動態(tài)效果,實(shí)現(xiàn)靈活,但需要編寫Java代碼
  • 自動配置類方法:結(jié)合了Spring Boot自動配置的優(yōu)點(diǎn),配置類自動加載,適合更復(fù)雜的配置和動態(tài)效果

如果上述的Demo多個聯(lián)合使用,需要注意時間順序
可以在如下加入延遲,類似如下:

public class BannerApplicationRunner implements ApplicationRunner {

    @Override
    public void run(ApplicationArguments args) {
        ThreadUtil.execute(() -> {
            ThreadUtil.sleep(1, TimeUnit.SECONDS); // 延遲 1 秒,保證輸出到結(jié)尾
            log.info("ceshi");
	     });
	}
}

到此這篇關(guān)于SpringBoot自定義啟動界面的實(shí)現(xiàn)代碼的文章就介紹到這了,更多相關(guān)SpringBoot自定義啟動界面內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • SpringMVC使用RESTful接口案例

    SpringMVC使用RESTful接口案例

    RESTful是一種web軟件風(fēng)格,它不是標(biāo)準(zhǔn)也不是協(xié)議,它不一定要采用,只是一種風(fēng)格,它倡導(dǎo)的是一個資源定位(url)及資源操作的風(fēng)格,這篇文章主要介紹了SpringBoot使用RESTful接口
    2022-12-12
  • Java中JDBC連接池的基本原理及實(shí)現(xiàn)方式

    Java中JDBC連接池的基本原理及實(shí)現(xiàn)方式

    本文詳細(xì)講解了Java中JDBC連接池的基本原理及實(shí)現(xiàn)方式,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-12-12
  • Java zookeeper服務(wù)的使用詳解

    Java zookeeper服務(wù)的使用詳解

    ZooKeeper是一個分布式的,開放源碼的分布式應(yīng)用程序協(xié)調(diào)服務(wù),是Google的Chubby一個開源的實(shí)現(xiàn),是Hadoop和Hbase的重要組件。它是一個為分布式應(yīng)用提供一致性服務(wù)的軟件,提供的功能包括:配置維護(hù)、域名服務(wù)、分布式同步、組服務(wù)等
    2022-08-08
  • SpringBoot進(jìn)行多表查詢功能的實(shí)現(xiàn)

    SpringBoot進(jìn)行多表查詢功能的實(shí)現(xiàn)

    這篇文章主要介紹了SpringBoot進(jìn)行多表查詢功能,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-09-09
  • 基于Spring Data Jest的Elasticsearch數(shù)據(jù)統(tǒng)計示例

    基于Spring Data Jest的Elasticsearch數(shù)據(jù)統(tǒng)計示例

    本篇文章主要介紹了基于Spring Data Jest的Elasticsearch數(shù)據(jù)統(tǒng)計示例,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-02-02
  • Spring之從橋接方法到JVM方法調(diào)用解讀

    Spring之從橋接方法到JVM方法調(diào)用解讀

    這篇文章主要介紹了Spring之從橋接方法到JVM方法調(diào)用解讀,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-01-01
  • 基于Java swing組件實(shí)現(xiàn)簡易計算器

    基于Java swing組件實(shí)現(xiàn)簡易計算器

    這篇文章主要介紹了基于Java swing組件實(shí)現(xiàn)簡易計算器,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-04-04
  • Java concurrency之AtomicLongArray原子類_動力節(jié)點(diǎn)Java學(xué)院整理

    Java concurrency之AtomicLongArray原子類_動力節(jié)點(diǎn)Java學(xué)院整理

    這篇文章主要介紹了Java concurrency之AtomicLongArray原子類的相關(guān)知識,感興趣的朋友參考下吧
    2017-06-06
  • SpringBoot配置Druid數(shù)據(jù)監(jiān)控代碼實(shí)例

    SpringBoot配置Druid數(shù)據(jù)監(jiān)控代碼實(shí)例

    這篇文章主要介紹了SpringBoot配置Druid數(shù)據(jù)監(jiān)控代碼實(shí)例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-06-06
  • SpringBoot 請求參數(shù)忽略大小寫的實(shí)例

    SpringBoot 請求參數(shù)忽略大小寫的實(shí)例

    這篇文章主要介紹了SpringBoot 請求參數(shù)忽略大小寫的實(shí)例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-01-01

最新評論

高雄县| 台安县| 汾阳市| 新宁县| 新化县| 金坛市| 新乐市| 墨竹工卡县| 云安县| 仙游县| 东光县| 宜昌市| 车险| 象州县| 桐庐县| 尖扎县| 青阳县| 霍城县| 垣曲县| 东至县| 莱芜市| 阳朔县| 色达县| 华池县| 屯留县| 临朐县| 迭部县| 绥滨县| 杨浦区| 萍乡市| 夏津县| 那坡县| 越西县| 三台县| 伽师县| 石泉县| 曲水县| 银川市| 大荔县| 固原市| 灌阳县|