Spring Boot 个性化自定义Banner

参考文章:Spring boot 之自定义 Banner

// 不直接放Banner.txt文件来控制Spring Boot Banner图样
// 而是通过实现org.springframework.boot.Banner接口来重写Banner图样
// 这样做的目的是为了在分布式系统中,只要通用模块重写了Banner,其他模块就可以引用从而实现Banner代码复用
// 如果想要实现上面的需求,通过引入Banner.txt文件放到通用模块会不方便操作
/**
 * 参考:
 * org.springframework.boot.SpringBootBanner
 * org.springframework.boot.SpringApplicationBannerPrinter
 *
 * @author MoCha
 * @date 2019/10/28
 */
public class IceStreamBanner implements Banner {
    private static final String[] BANNER = {"\n" +
            " ___  ________  _______           ________  _________  ________  _______   ________  _____ ______      \n" +
            "|\\  \\|\\   ____\\|\\  ___ \\         |\\   ____\\|\\___   ___\\\\   __  \\|\\  ___ \\ |\\   __  \\|\\   _ \\  _   \\    \n" +
            "\\ \\  \\ \\  \\___|\\ \\   __/|        \\ \\  \\___|\\|___ \\  \\_\\ \\  \\|\\  \\ \\   __/|\\ \\  \\|\\  \\ \\  \\\\\\__\\ \\  \\   \n" +
            " \\ \\  \\ \\  \\    \\ \\  \\_|/__       \\ \\_____  \\   \\ \\  \\ \\ \\   _  _\\ \\  \\_|/_\\ \\   __  \\ \\  \\\\|__| \\  \\  \n" +
            "  \\ \\  \\ \\  \\____\\ \\  \\_|\\ \\       \\|____|\\  \\   \\ \\  \\ \\ \\  \\\\  \\\\ \\  \\_|\\ \\ \\  \\ \\  \\ \\  \\    \\ \\  \\ \n" +
            "   \\ \\__\\ \\_______\\ \\_______\\        ____\\_\\  \\   \\ \\__\\ \\ \\__\\\\ _\\\\ \\_______\\ \\__\\ \\__\\ \\__\\    \\ \\__\\\n" +
            "    \\|__|\\|_______|\\|_______|       |\\_________\\   \\|__|  \\|__|\\|__|\\|_______|\\|__|\\|__|\\|__|     \\|__|\n" +
            "                                    \\|_________|                                                       \n"};

    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 + ")" : "";
        StringBuilder padding = new StringBuilder();
        while (padding.length() < STRAP_LINE_SIZE - (version.length() + SPRING_BOOT.length())) {
            padding.append(" ");
        }

        printStream.println(AnsiOutput.toString(AnsiColor.GREEN, SPRING_BOOT, AnsiColor.DEFAULT, padding.toString(),
                AnsiStyle.FAINT, version));
        printStream.println();
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值