From c97778ff8c611647d1f50d42dedce2d3a0465f0e Mon Sep 17 00:00:00 2001 From: ouyu <461388758@qq.com> Date: Wed, 23 Sep 2020 13:33:11 +0800 Subject: [PATCH] =?UTF-8?q?banner=E5=85=81=E8=AE=B8=E5=8F=AF=E8=83=BD?= =?UTF-8?q?=E6=98=AF=E6=96=87=E4=BB=B6=E6=88=96=E8=80=85=E6=98=AF=E5=9B=BE?= =?UTF-8?q?=E7=89=87?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../jiangzeyin/common/ApplicationBuilder.java | 38 +++++++++++++++++++ 1 file changed, 38 insertions(+) diff --git a/common-boot/src/main/java/cn/jiangzeyin/common/ApplicationBuilder.java b/common-boot/src/main/java/cn/jiangzeyin/common/ApplicationBuilder.java index a48e27c..436e2b0 100644 --- a/common-boot/src/main/java/cn/jiangzeyin/common/ApplicationBuilder.java +++ b/common-boot/src/main/java/cn/jiangzeyin/common/ApplicationBuilder.java @@ -8,12 +8,18 @@ import cn.jiangzeyin.common.spring.SpringUtil; import cn.jiangzeyin.common.spring.event.ApplicationEventClient; import cn.jiangzeyin.common.spring.event.ApplicationEventLoad; import cn.jiangzeyin.common.validator.ParameterInterceptor; +import org.springframework.boot.Banner; +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.context.annotation.ComponentScan; import org.springframework.core.env.Environment; +import org.springframework.core.io.DefaultResourceLoader; +import org.springframework.core.io.Resource; import org.springframework.http.converter.HttpMessageConverter; +import org.springframework.util.ClassUtils; import org.springframework.util.StringUtils; import org.springframework.web.method.support.HandlerMethodArgumentResolver; @@ -31,6 +37,8 @@ import java.util.function.Function; public class ApplicationBuilder extends SpringApplicationBuilder { private final static List APPLICATION_BUILDER = new ArrayList<>(); + + static final String[] IMAGE_EXTENSION = new String[]{"gif", "jpg", "png"}; /** * 程序主类 */ @@ -109,6 +117,25 @@ public class ApplicationBuilder extends SpringApplicationBuilder { // 最早获取配置信息 ApplicationBuilder.this.environment = environment; String msg = environment.getProperty(CommonPropertiesFinal.BANNER_MSG, "boot Application starting"); + //带路径的可能是banner文件或banner图片 + if (msg.contains("classpath")) { + String suffixName = msg.substring(msg.indexOf(".")+1); + for (String s : IMAGE_EXTENSION) { + if(s.equals(suffixName)){ + Banner imageBanner = getImageBanner(environment, msg); + if (imageBanner != null) { + imageBanner.printBanner(environment, sourceClass, out); + return; + } + } + } + + Banner textBanner = getTextBanner(environment, msg); + if (textBanner != null) { + textBanner.printBanner(environment, sourceClass, out); + return; + } + } out.println(msg); }); EnableCommonBoot enableCommonBoot = this.applicationClass.getAnnotation(EnableCommonBoot.class); @@ -124,6 +151,17 @@ public class ApplicationBuilder extends SpringApplicationBuilder { APPLICATION_BUILDER.add(this); } + private Banner getImageBanner(Environment environment, String location) { + Resource resource = new DefaultResourceLoader(ClassUtils.getDefaultClassLoader()).getResource(location); + return resource.exists() ? new ImageBanner(resource) : null; + + } + + private Banner getTextBanner(Environment environment, String location) { + Resource resource = new DefaultResourceLoader(ClassUtils.getDefaultClassLoader()).getResource(location); + return resource.exists() ? new ResourceBanner(resource) : null; + } + public static Environment getEnvironment() { if (CollUtil.isEmpty(APPLICATION_BUILDER)) { return SpringUtil.getBean(Environment.class); -- Gitee