カスタムバナーを使用した後、SpringBootはすぐに背が高くなりました...

Spring Bootの開始時に、会社のロゴまたはプロジェクトのロゴを配置することができます。この記事では、これらの方法を試すことができます。これにより、起動時にSpring Bootプロジェクトの卵をすばやく作成して、改善することができます。プロジェクトの認知度、または退屈な生活にいくつかの楽しみを加えるために純粋に壊れている場合、この記事のこれらのコンテンツはあなたを助けることができます。

この記事の知識ポイントは次のとおりです。

Knowledge Graph.png

バナー効果表示

Spring Bootのデフォルトのバナーは、次のような効果を示します。
バナーバナーはデフォルトで開始されます。
これを次のように変えることができます。

バナー効果2.png

またはこのようなもの:

バナー効果1.png

またはこのようなもの:

バナー効果3.png
単に飛行するだけで、コンテンツをカスタマイズできるだけなく、色もカスタマイズできます。次に、その実装方法を見てみましょう。

カスタムバナー

カスタムバナーを実装する方法は2つあり、1つはカスタムバナークラスを書き直す方法、もう1つはtxtファイルを実装する方法です。

1. Bannerクラスを書き直す

まず、カスタムクラスを使用してバナーインターフェイスを実装する必要があります。実装コードは次のとおりです。

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

import java.io.PrintStream;

public class MyBanner implements Banner {
    private static final String BANNER =
            "  ___ ___         .__  .__          \n" +
                    " /   |   \\   ____ |  | |  |   ____  \n" +
                    "/    ~    \\_/ __ \\|  | |  |  /  _ \\ \n" +
                    "\\    Y    /\\  ___/|  |_|  |_(  <_> )\n" +
                    " \\___|_  /  \\___  >____/____/\\____/ \n" +
                    "       \\/       \\/                  ";

    @Override
    public void printBanner(Environment environment, Class<?> sourceClass, PrintStream out) {
        out.println(BANNER);
        out.println();
    }
}

これはBANNER 、コンテンツのカスタムバナー変数であり、私はこの1つを入れてhello、その後、実装次のコードというカスタムクラスを開始春のブート時にバナークラスを設定します。

public static void main(String[] args) {
    SpringApplication springApplication = new SpringApplication(DemoApplication.class);
    // 设置自定义 Banner
    springApplication.setBanner(new MyBanner());
    // 启动 Spring Boot
    springApplication.run(args);
}

最終的な実行効果を次の図に示します。

カスタムbanner.png

2. txtファイルを使用

次の図に示すように、Spring Bootプロジェクトの/ src / main / resourcesディレクトリにbanner.txtファイルを作成し、ASCII文字の絵をコピーしてデフォルトのバナーを置き換えることができます。

bannertxt location.png

banner.txtファイルを使用してカスタムバナーを実装できるのは、Spring Bootフレームワークが起動時に次の順序でバナー情報を検索するためです。

  • まずClasspathの下でファイルbanner.gif、banner.jpg、banner.pngを見つけ、最初に見つけたものを使用します。
  • 上記のいずれもない場合は、クラスパスの下でbanner.txtを探してください。
  • 見つからない場合は、デフォルトのSpring Boot Bannerが使用されます。

上記の知識ポイントは、SpringApplicationBannerPrinterソースコードで学習されます。コアソースコードは次のとおりです。

class SpringApplicationBannerPrinter {
    static final String BANNER_LOCATION_PROPERTY = "spring.banner.location";
    static final String BANNER_IMAGE_LOCATION_PROPERTY = "spring.banner.image.location";
    static final String DEFAULT_BANNER_LOCATION = "banner.txt";
    static final String[] IMAGE_EXTENSION = new String[]{"gif", "jpg", "png"};
    // 忽略非核心源码
    private Banner getBanner(Environment environment) {
        SpringApplicationBannerPrinter.Banners banners = new SpringApplicationBannerPrinter.Banners();
        // 获取图片形式 banner
        banners.addIfNotNull(this.getImageBanner(environment));
        // 获取文字形式 banner
        banners.addIfNotNull(this.getTextBanner(environment));
        if (banners.hasAtLeastOneBanner()) {
            return banners;
        } else {
            return this.fallbackBanner != null ? this.fallbackBanner : DEFAULT_BANNER;
        }
    }

    private Banner getTextBanner(Environment environment) {
        String location = environment.getProperty("spring.banner.location", "banner.txt");
        Resource resource = this.resourceLoader.getResource(location);
        return resource.exists() ? new ResourceBanner(resource) : null;
    }

    private Banner getImageBanner(Environment environment) {
        String location = environment.getProperty("spring.banner.image.location");
        if (StringUtils.hasLength(location)) {
            Resource resource = this.resourceLoader.getResource(location);
            return resource.exists() ? new ImageBanner(resource) : null;
        } else {
            String[] var3 = IMAGE_EXTENSION;
            int var4 = var3.length;

            for(int var5 = 0; var5 < var4; ++var5) {
                String ext = var3[var5];
                Resource resource = this.resourceLoader.getResource("banner." + ext);
                if (resource.exists()) {
                    return new ImageBanner(resource);
                }
            }
            return null;
        }
    }
}

したがって、banner.txtを使用してバナー情報をカスタマイズできます。もちろん、画像の方法を使用してバナーをカスタマイズすることもできます。

ヒント:banner.gifを使用して、動的バナーの効果を実現できます。試してみてください。

この方法は実装が比較的簡単で、コードに煩わしいため推奨されます。

バナースタイルコントロール

上記のバナーテキストの変更について説明します。バナープレゼンテーションや、フォントスタイル、太字、斜体などの他の属性も変更できます。SpringBootは、これらのスタイルを設定するための3つの列挙型クラスを提供します。 :

  • AnsiColor:文字の前景色を設定するために使用されます。
  • AnsiBackground:キャラクターの背景色を設定するために使用されます。
  • AnsiStyle:太字、斜体、下線などを制御するために使用されます。

たとえば、AnsiColorを使用して色を設定できますbanner.txtの情報は次のとおりです。

${AnsiColor.BRIGHT_RED}  _  _              _       _
${AnsiColor.BRIGHT_RED} | || |    ___     | |     | |     ___
${AnsiColor.BRIGHT_YELLOW} | __ |   / -_)    | |     | |    / _ \
${AnsiColor.BRIGHT_YELLOW} |_||_|   \___|   _|_|_   _|_|_   \___/
${AnsiColor.BRIGHT_RED}_|"""""|_|"""""|_|"""""|_|"""""|_|"""""|
${AnsiColor.BRIGHT_RED}"`-0-0-'"`-0-0-'"`-0-0-'"`-0-0-'"`-0-0-'

最終的な表示効果を以下に示します。

Color effect.png

バナーは出力変数を使用します

banner.txtでは、いくつかのグローバル変数を出力することもできます。次に例を示します。

  • $ {application.version}:MANIFEST.MFファイルのバージョン番号を取得するために使用されます。
  • $ {application.formatted-version}:$ {application.version}のフォーマット済みバージョン情報。
  • $ {spring-boot.version}:Spring Bootのバージョン番号。
  • $ {spring-boot.formatted-version}:$ {spring-boot.version}のフォーマット済みバージョン情報。

使用例は次のとおりです。

      /¯¯¯¯\     
    o-|[][]|-o   
      |_--_|     
   /¯¯¯¯¯¯¯¯¯¯\  
   |||  «»  |||  
   |||      |||  
  (o)|      |(o) 
     |  ||  |    
     |__||__|    
     |__||__|

Spring Boot 版本:${spring-boot.version}

バナー画像オンライン生成

オンラインでバナーアドレスを生成します。

次のようにサムネイルを使用して、最初のものを使用することをお勧めします。

Online address-1.png

バナーを隠す

バナー情報を非表示にする必要がある場合は、次の3つの方法を使用できます

1.コードでバナーを閉じる

Spring Bootが開始(実行)する前に隠しバナーを設定できます。実装コードは次のとおりです。

public class DemoApplication {
    public static void main(String[] args) {
        SpringApplication springApplication = new SpringApplication(DemoApplication.class);
        // 隐藏 banner
        springApplication.setBannerMode(Banner.Mode.OFF);
        // 启动 Spring Boot
        springApplication.run(args);
    }
}

2.設定ファイルでバナーを非表示にします

Spring Bootの構成ファイルはapplication.properties 、次の構成を設定することでバナー表示を非表示にします。構成は次のとおりです。

spring.main.banner-mode=off

3.アイデアにバナーを隠す

次の図に示すように、アイデアのデバッグ構成でバナーを非表示にすることができます。
idea close banner.png

添付:イースターエッグ

記事の最後に、カラフルな仏のバナーが添付されています。

${AnsiColor.BRIGHT_GREEN}$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
${AnsiColor.BRIGHT_YELLOW}$$                                _.ooOoo._                               $$
${AnsiColor.BRIGHT_RED}$$                               o888888888o                              $$
${AnsiColor.BRIGHT_CYAN}$$                               88"  .  "88                              $$
${AnsiColor.BRIGHT_MAGENTA}$$                               (|  ^_^  |)                              $$
${AnsiColor.BRIGHT_GREEN}$$                               O\   =   /O                              $$
${AnsiColor.BRIGHT_RED}$$                            ____/`-----'\____                           $$
${AnsiColor.BRIGHT_CYAN}$$                          .'  \\|       |$$  `.                         $$
${AnsiColor.BRIGHT_MAGENTA}$$                         /  \\|||   :   |||$$  \                        $$
${AnsiColor.BRIGHT_GREEN}$$                        /  _|||||  -:-  |||||-  \                       $$
${AnsiColor.BRIGHT_YELLOW}$$                        |   | \\\   -   $$/ |   |                       $$
${AnsiColor.BRIGHT_GREEN}$$                        | \_|  ''\-----/''  |   |                       $$
${AnsiColor.BRIGHT_YELLOW}$$                        \  .-\___  `-`  ____/-. /                       $$
${AnsiColor.BRIGHT_CYAN}$$                      ___`. .'   /--.--\   `. . ___                     $$
${AnsiColor.BRIGHT_RED}$$                    ."" '<  `.____\_<|>_/____.'  >'"".                  $$
${AnsiColor.BRIGHT_GREEN}$$                  | | :  `- \`.;`.\ _ /``;.`/ - ` : | |                 $$
${AnsiColor.BRIGHT_YELLOW}$$                  \  \ `-.   \_ ___\ /___ _/   .-` /  /                 $$
${AnsiColor.BRIGHT_CYAN}$$            ========`-.____`-.____\_____/____.-`____.-'========         $$
${AnsiColor.BRIGHT_MAGENTA}$$                                  `=---='                               $$
${AnsiColor.BRIGHT_YELLOW}$$            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^        $$
${AnsiColor.BRIGHT_GREEN}$$                     佛祖保佑          永无BUG         永不修改         $$
${AnsiColor.BRIGHT_YELLOW}$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
${AnsiColor.BRIGHT_YELLOW}

効果は次のとおりです。

バナー効果3.png

まとめ

この記事では、バナーをカスタマイズする2つの方法、バナークラスとbanner.txtをカスタマイズする方法について説明しました。これにより、ソースコード分析を通じてbanner.txt カスタムバナー情報を渡すことができる理由が説明されますまた、バナースタイルコントロール(色、フォントスタイルなど)とグローバル変数の出力メソッド、およびバナーマップによってオンラインで生成されるいくつかのアドレスについて説明し、最後にバナーを非表示にする3つの方法について説明しました。

最後の言葉

時計に合わせて、それぞれのオリジナルを注意深く書きます。書くことは他の人を助けることができるクールなものであり、私はそれに固執したいと思っています。あなたがそれが役に立つと思うなら、私に親指を上げてください、彼は私がより良い記事を作ることを勧めます。

参照と謝辞

https://www.jianshu.com/p/c1f7617c99aa

https://www.jianshu.com/p/9a2c20e3766d

おすすめ

転載: www.cnblogs.com/vipstone/p/12736773.html