Spring-Boot Banner

Posted Jachs

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Spring-Boot Banner相关的知识,希望对你有一定的参考价值。

下载Spring-Boot源码,目录结构spring-boot-2.1.0.M2\\spring-boot-2.1.0.M2\\spring-boot-project\\spring-boot\\src\\main\\java\\org\\springframework\\boot

Banner为接口具体实现类二个,https://docs.spring.io/spring-boot/docs/2.0.5.RELEASE/api/ 

一个存放图片资源,一个存放资源。

package com.jachs.jurisdiction.Jurisdiction;

import java.io.BufferedInputStream;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileReader;

import org.springframework.boot.ImageBanner;
import org.springframework.boot.ResourceBanner;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.boot.web.servlet.support.SpringBootServletInitializer;
import org.springframework.core.io.InputStreamResource;

@SpringBootApplication
public class JurisdictionApplication{
    /*
    @Override
    protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
        System.out.println("in");
        try {
            builder.banner(new ImageBanner(new InputStreamResource(new FileInputStream("C:\\\\Users\\\\Jachs\\\\Desktop\\\\a.png"))));
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        }
        return builder.sources(JurisdictionApplication.class);
    }
    */
    public static void main(String[] args) throws FileNotFoundException {
        // SpringApplication.run(LoginAction.class, args);
//        SpringApplication.run(JurisdictionApplication.class, args);
        SpringApplication application = new SpringApplication(JurisdictionApplication.class);
        application.setBanner(new ImageBanner(new InputStreamResource(new FileInputStream("C:\\\\Users\\\\Jachs\\\\Desktop\\\\a.png"))));
//        application.setBanner(new ResourceBanner(new InputStreamResource(new FileInputStream("C:\\\\Users\\\\Jachs\\\\Desktop\\\\s.txt"))));
        application.run(args);
    }
}

实现ImageBanner是打印的为图片二进制,为实现自己独特的打印采用ResourceBanner指定一个文本写入类容初始化时打印。

************************
************************
*******HellWord*********
************************
************************
2018-09-14 16:25:21.462  INFO 5940 --- [           main] c.j.j.J.JurisdictionApplication          : Starting JurisdictionApplication on ZhanChaoHan with PID 5940 (C:\\Users\\Jachs\\Downloads\\Jurisdiction\\target\\classes started by zhanchaohan in C:\\Users\\Jachs\\Downloads\\Jurisdiction)
2018-09-14 16:25:21.467  INFO 5940 --- [           main] c.j.j.J.JurisdictionApplication          : No active profile set, falling back to default profiles: default
2018-09-14 16:25:23.480  INFO 5940 --- [           main] o.s.b.w.embedded.tomcat.TomcatWebServer  : Tomcat initialized with port(s): 8080 (http)
2018-09-14 16:25:23.517  INFO 5940 --- [           main] o.apache.catalina.core.StandardService   : Starting service [Tomcat]
2018-09-14 16:25:23.517  INFO 5940 --- [           main] org.apache.catalina.core.StandardEngine  : Starting Servlet Engine: Apache Tomcat/9.0.12
2018-09-14 16:25:23.531  INFO 5940 --- [           main] o.a.catalina.core.AprLifecycleListener   : The APR based Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: [D:\\jdk-8u5-windows-x64\\bin;C:\\Windows\\Sun\\Java\\bin;C:\\Windows\\system32;C:\\Windows;D:/jdk-8u5-windows-x64/bin/../jre/bin/server;D:/jdk-8u5-windows-x64/bin/../jre/bin;D:/jdk-8u5-windows-x64/bin/../jre/lib/amd64;C:\\Windows\\system32;C:\\Windows;C:\\Windows\\System32\\Wbem;C:\\Windows\\System32\\WindowsPowerShell\\v1.0\\;F:\\mysql\\bin;D:\\php-7.0.10\\php-7.0.10;D:\\php-7.0.10\\php-7.0.10\\ext;F:\\TortoiseSVN\\bin;F:\\VisualSVN-Server-3.5.6-x64.msi\\VisualSVN Serve\\bin;E:\\BaiDu\\C#\\运行Java\\ikvm-7.2.4630.5\\bin;D:\\aspectj1.8\\bin;D:\\cygwin\\bin;F:\\Git\\cmd;E:\\BaiDu\\JAVA\\java\\Apache\\Maven\\gradle-4.6-bin\\gradle-4.6\\bin;D:\\jdk-8u5-windows-x64\\bin;E:\\BaiDu\\JAVA\\java\\Apache\\Maven\\apache-maven-3.5.3-bin\\apache-maven-3.5.3\\bin;F:\\es\\zookeeper\\bin;F:\\es\\kafka-eagle-bin-1.2.3\\kafka-eagle-bin-1.2.3\\kafka-eagle-web-1.2.3-bin\\bin;E:\\sts-bundle\\sts-3.8.4.RELEASE;;.]
2018-09-14 16:25:23.720  INFO 5940 --- [           main] o.a.c.c.C.[Tomcat].[localhost].[/]       : Initializing Spring embedded WebApplicationContext
2018-09-14 16:25:23.720  INFO 5940 --- [           main] o.s.web.context.ContextLoader            : Root WebApplicationContext: initialization completed in 2187 ms
2018-09-14 16:25:23.766  INFO 5940 --- [           main] o.s.b.w.servlet.ServletRegistrationBean  : Servlet dispatcherServlet mapped to [/]
2018-09-14 16:25:23.772  INFO 5940 --- [           main] o.s.b.w.servlet.FilterRegistrationBean   : Mapping filter: \'characterEncodingFilter\' to: [/*]
2018-09-14 16:25:23.773  INFO 5940 --- [           main] o.s.b.w.servlet.FilterRegistrationBean   : Mapping filter: \'hiddenHttpMethodFilter\' to: [/*]
2018-09-14 16:25:23.773  INFO 5940 --- [           main] o.s.b.w.servlet.FilterRegistrationBean   : Mapping filter: \'formContentFilter\' to: [/*]
2018-09-14 16:25:23.774  INFO 5940 --- [           main] o.s.b.w.servlet.FilterRegistrationBean   : Mapping filter: \'requestContextFilter\' to: [/*]
2018-09-14 16:25:23.859  INFO 5940 --- [           main] o.s.s.concurrent.ThreadPoolTaskExecutor  : Initializing ExecutorService  \'applicationTaskExecutor\'
2018-09-14 16:25:24.699  INFO 5940 --- [           main] o.s.b.w.embedded.tomcat.TomcatWebServer  : Tomcat started on port(s): 8080 (http) with context path \'\'
2018-09-14 16:25:24.706  INFO 5940 --- [           main] c.j.j.J.JurisdictionApplication          : Started JurisdictionApplication in 4.06 seconds (JVM running for 4.971)
2018-09-14 16:25:25.447  INFO 5940 --- [on(2)-127.0.0.1] inMXBeanRegistrar$SpringApplicationAdmin : Application shutdown requested.
2018-09-14 16:25:25.452  INFO 5940 --- [on(2)-127.0.0.1] o.s.s.concurrent.ThreadPoolTaskExecutor  : Shutting down ExecutorService \'applicationTaskExecutor\'

默认打印采用的是SpringBootBanner代码如下,可以自己改造

/*
 * Copyright 2012-2018 the original author or authors.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

package org.springframework.boot;

import java.io.PrintStream;

import org.springframework.boot.ansi.AnsiColor;
import org.springframework.boot.ansi.AnsiOutput;
import org.springframework.boot.ansi.AnsiStyle;
import org.springframework.core.env.Environment;

/**
 * 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 + ")" : "";
        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();
    }

}

不想显示初始化Banner时。

application.setBannerMode(Mode.OFF);
Mode说明

该枚举三个CONSOLE打印到控制台,LOG打印到log日志,OFF不打印。

 

以上是关于Spring-Boot Banner的主要内容,如果未能解决你的问题,请参考以下文章

spring-boot如何去获取前端传递的参数

解决spring-boot启动中碰到的问题:Cannot determine embedded database driver class for database type NONE(转)(代码片段

2.springboot基本配置

使用片段时 Intellij 无法正确识别 Thymeleaf 模型变量

SpringApplication setBanner无效的问题

html5 banner图片数量如何在代码里改