zoukankan      html  css  js  c++  java
  • springboot启动banner图片

    SpringBoot启动的时候会打印了默认在resource下面banner.txt里面的内容,突然好奇,就大概看下源码,记个笔记,比较简单.
    首先,banner有个开关:

       SpringApplication springApplication = new SpringApplication(RunApplication.class);
            //控制台打印
    //       springApplication.setBannerMode(Banner.Mode.CONSOLE);
            //关闭
            springApplication.setBannerMode(Banner.Mode.OFF);
            springApplication.run(args);
    

    Mode对应的枚举比较简单:

    		OFF,
            CONSOLE,
            LOG;
    

    然后点到run方法里面去,一眼看见printBanner字样:
    在这里插入图片描述
    点到this.printBanner方法里面去:
    在这里插入图片描述
    在一开始设置的开关那里,set方法赋值进去了, springApplication.setBannerMode(Banner.Mode.OFF);如果为OFF就不打印:
    在这里插入图片描述
    如果开启的话,就先获得资源加载器ResourceLoader,ResourceLoader内部默认是以classpath:开头的,所以,我们只需要在resource下面创建banner.txt即可.
    在这里插入图片描述
    然后根据加载器和打印的Model枚举初始化SpringApplicationBannerPrinter,这个类就是打印banner的具体类了,然后主要打印方法就是print方法,其他方法就是获取不同的banner,然后再下面的静态内部类,我也不是很懂,希望大佬留言教教我…然后打印就两个方法,一个日志打印,一个流打印.
    在这里插入图片描述
    在这里插入图片描述
    然后日志打印的话,就根据createStringFromBanner这个方法获取Stirng字符串,然后日志打印,
    控制台输出的话,就是根据先根据环境获取对应的Banner,实现Banner(里面就打印方法)接口主要一个图片banner,和资源banner,这里应该是ResourceBanner资源banner,然后调用ResourceBanner里面的printBanner方法.,里面就有我们熟悉的 System.out.println()了.
    在这里插入图片描述
    在这里插入图片描述
    中间一些PropertyResolver我感觉应该是做一些解析,但具体,也不是很懂,萌新希望大佬留言指点指点.以上就是springboot加载banner图片的大概流程.然后,那我们自己想实现一个简单的打印banner呢?那就解析banner.txt文件转换为字符串,然后直接打印出来即可.
    在这里插入图片描述
    可以写在启动完成之后,也可以写在之前,就是读取文件,转为String打印出来…
    在线生成banner图:https://www.bootschool.net/ascii/

    世界上所有的不公平都是由于当事人能力不足造成的.
  • 相关阅读:
    SpringBoot集成RocketMQ报错:Bad annotation definition in @ExtRocketMQTemplateConfiguration...
    RocketMQ分析
    SpringBoot 自定义 health Actuator 原理
    【质量】容错机制
    【Java】ByteBuffer介绍
    【AWS】Essentials
    【QA123】NFR 非功能性需求
    【JVM123】OOM分析和解决
    【网络123】Http返回码
    【网络123】HTTP连接
  • 原文地址:https://www.cnblogs.com/javayida/p/13347097.html
Copyright © 2011-2022 走看看