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启动中碰到的问题:Cannot determine embedded database driver class for database type NONE(转)(代码片段
使用片段时 Intellij 无法正确识别 Thymeleaf 模型变量