温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

SpringBoot中banner怎么使用

发布时间:2022-04-06 15:59:20 来源:亿速云 阅读:205 作者:iii 栏目:移动开发

这篇文章主要介绍“SpringBoot中banner怎么使用”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“SpringBoot中banner怎么使用”文章能帮助大家解决问题。

制作自己的banner

第一步:在src/main/resources下面创建banner.txt。

第二步:访问网站 http://patorjk.com/software/taag,在网站“Type Something ”处输入想要制作的单词(比如:Hello World),会生成对应的字符。也可以通过其他参数来调整字符的样式。

SpringBoot中banner怎么使用

复制生成的字符,粘贴到banner.txt,再次启动程序便可以打印出指定的banner了。

个人比较喜欢的banner是如下图形:

${AnsiColor.BRIGHT_YELLOW} //////////////////////////////////////////////////////////////////// //             _ooOoo_                // //             o8888888o               // //             88" . "88               // //             (| ^_^ |)               // //             O\ = /O               // //           ____/`---'\____              // //          .' \\|   |// `.             // //          / \\||| : |||// \            // //         / _||||| -:- |||||- \            // //         |  | \\\ - /// |  |            // //         | \_| ''\---/'' |  |            // //         \ .-\__ `-` ___/-. /            // //        ___`. .' /--.--\ `. . ___           // //       ."" '< `.___\_<|>_/___.' >'"".         // //      | | : `- \`.;`\ _ /`;.`/ - ` : | |         // //      \ \ `-.  \_ __\ /__ _/  .-` / /         // //   ========`-.____`-.___\_____/___.-`____.-'========     // //              `=---='               // //   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^    // //      佛祖保佑    永不宕机   永无BUG         // ////////////////////////////////////////////////////////////////////

在新版本的SpringBoot中,支持了gif、jpg和png的图片形式的banner打印。当然,并不会把图片直接打印在控制台,而是将其像素解析转换成assii编码之后打印。

对于gif动图,会把动图的每个图片都打印出来,如果动图比较大,打印时间较长。可以尝试一下,但建议不要使用gif。

在banner.txt中,还可以进行一些设置,比如上图中的${AnsiColor.BRIGHT_YELLOW}。

  • AnsiColor.BRIGHT_RED:设置控制台中输出内容的颜色

  • application.version:用来获取MANIFEST.MF文件中的版本号

  • application.formatted-version:格式化后的application.version版本信息

  • spring-boot.version:Spring Boot的版本号

  • spring-boot.formatted-version:格式化后的spring-boot.version版本信息

Banner接口

在未指定banner.txt或banner图片时,默认图形存储在哪里了呢?下面我们了解一下Banner接口。

@FunctionalInterface public interface Banner {   // 打印banner   void printBanner(Environment environment, Class<?> sourceClass, PrintStream out);   enum Mode {     // 关闭     OFF,     // 控制台     CONSOLE,     // 日志文件     LOG   } }

在banner接口中提供了打印banner的方法和一个枚举类。枚举类有三个值:OFF、CONSOLE、LOG,用来控制banner的打印,分别对应:关闭打印、控制台打印和日志打印。

banner接口的实现主要有ResourceBanner、ImageBanner、SpringBootBanner和其他内部类的实现。其中上面看到的图形的打印就来自于SpringBootBanner。看一下源代码:

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();   } }

在printBanner的方法实现中,首先打印了默认的Banner字符串数组,然后将SPRING_BOOT和版本信息进行拼接打印。

Banner的参数设置

banner的参数设定可以通过两种形式,一种是代码的形式,一种是配置文件的形式。

使用代码的形式首先要将默认的main方法进行改造,手动创建SpringApplication对象,然后设置相应的参数。示例代码:

public static void main(String[] args) {   SpringApplication app = new SpringApplication(SpringbootBannerApplication.class);   app.setBannerMode(Banner.Mode.CONSOLE);   Banner banner = new ImageBanner(new ClassPathResource("banner1.png"));   app.setBanner(banner);   app.run(args); }

通过配置文件设置就比较简单,直接在application.properties中进行配置,springboot已经帮我们预制好了相应的参数。

spring.banner.location=classpath:banner1.png spring.banner.image.margin=2 spring.banner.image.height=76 spring.banner.charset=UTF-8 spring.banner.image.invert=false spring.banner.image.location=banner1.png spring.main.banner-mode=console spring.main.show-banner=true

其中spring.main.show-banner来控制是否打印banner,在新版本中不建议使用,可以使用spring.main.banner-mode代替,将其值设置为OFF即可关闭banner的打印。

引入文本banner通过spring.banner.location来指定,引入图片相关的banner需要通过spring.banner.image.location来指定路径,否则会出现乱码情况。

如果不想显示banner,可以在代码中通过setBannerMode(Banner.Mode.OFF)方法或通过参数配置spring.main.banner-mode=off来关闭banner的打印。上面示例中已经有所展示。

关于“SpringBoot中banner怎么使用”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识,可以关注亿速云行业资讯频道,小编每天都会为大家更新不同的知识点。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI