Spring Boot 2 (二):Spring Boot 2 动态 Banner
Spring Boot 2 (二):Spring Boot 2 动态 Banner
Spring Boot 2.0 提供了很多新特性,其中就有一个小彩蛋:动态 Banner。
一、配置依赖
使用 Spring Boot 2.0 首先需要将项目依赖包替换为刚刚发布的 2.0 RELEASE,现在网站https://start.spring.io/
也将 Spring Boot 2.0 设置为默认版本。
- <parent>
- <groupId>org.springframework.boot</groupId>
- <artifactId>spring-boot-starter-parent</artifactId>
- <version>2.0.0.RELEASE</version>
- </parent>
设置完毕后,dependencies
中没有指明版本的依赖包,将自动使用2.0.0.RELEASE依赖的版本。
- <dependencies>
- <dependency>
- <groupId>org.springframework.boot</groupId>
- <artifactId>spring-boot-starter</artifactId>
- </dependency>
- </dependencies>
Spring Boot 2.0 刚刚发布,一些 Maven 仓库还没更新,如果导入项目后依赖包不能下载,可以手动添加 Spring Boot 官方 Maven 仓库。
- <repositories>
- <repository>
- <id>spring-milestones</id>
- <name>Spring Milestones</name>
- <url>https://repo.spring.io/libs-milestone</url>
- <snapshots>
- <enabled>false</enabled>
- </snapshots>
- </repository>
- </repositories>
注意:第一次使用 Spring Boot 2.0 ,完整依赖包需要下载半小时左右。
二、Spring Boot 更换 Banner
我们先来回顾一下在 Spring Boot 1.0 中如何更换启动 Banner,其实都很简单,只需要在src/main/resources
路径下新建一个banner.txt
文件,banner.txt
中填写好需要打印的字符串内容即可。
一般情况下,我们会借助第三方工具帮忙转化内容,如网站http://www.network-science.de/ascii/
将文字转化成字符串,网站:http://www.degraeve.com/img2txt.php
可以将图片转化成字符串。
以Hello World为启动字符串来进行测试:
- .__ .__ .__ .__ .___
- | |__ ____ | | | | ____ __ _ _____________| | __| _/
- | | \_/ __ \| | | | / _ \ \ \/ \/ / _ \_ __ \ | / __ |
- | Y \ ___/| |_| |_( <_> ) \ ( <_> ) | \/ |__/ /_/ |
- |___| /\___ >____/____/\____/ \/\_/ \____/|__| |____/\____ |
- \/ \/ \/
在 Spring Boot 2.0 项目src/main/resources
路径下新建一个banner.txt
文件,粘贴上述字符串,启动 Spring Boot 项目观察启动日志,发现 Spring Boot 2.0 已经将默认的 Spring 字符串替换为 hello world。说明 Spring Boot 2.0 也支持1.0更换 Banner 的方法。
接下来在 Spring Boot 2.0 项目中测试打印动态 Banner ,使用的gif如下:
同样我们将 banner.gif 文件放到项目的src/main/resources
路径下,启动项目进行测试,输出栏打印信息如下:
- ..
- .::*
- ...
- ..... ....
- ........ . ...
- ........ . ..
- ...... ....
- .... ...
- . .
- ..**::**..
- .*::::::::::*.
- .*::::::::::::*.
- .*::::::::::::*.
- .*::::::::::::*.
- .*::::::::::*.
- ..**::***.
- ..
- ..... ..
- ..... ...
- ...... ......
- . ... . .....
- . .... . .
- ............................ .............
- .................. ......... ................ .
- ................... ... . ... ............
- ............. . ... ...............
- . ......... ...........
- .......... ....... ....
- ............ ........
- ........ ........
- .... . .........
- ........ ........
- ......... ..********.. ......*..
- ........ .**::::::::::::**. ........
- ........... .**::::::::::::::::**. .......
- ...... .*::::::::::::::::::::*. .......
- ... .. .*::::::::::::::::::::::*. .......
- ...... .::::::::::::::::::::::::. .......
- .......... .::::::::::::::::::::::::. ... ....
- ......... .*:::::::::::::::::::::::. ....
- ......... .*::::::::::::::::::::::*. ...
- ......... .*::::::::::::::::::::*. ....
- ........ .**::::::::::::::::**. .........
- ... .... .**::::::::::::**. .........
- . ........ .********.. .........
- ....... . ......*..
- ......... . .....
- ....... .........
- ........ . ............
- ............ .. ...........
- . ............. .........
- ................ .... ..........
- ............. .... . ......... . ..... .
- .... ...... ......... . .. .... .............. ....
- .. ............. ........... ..............
- ::. .*:*
- :. *:* *. .*:*
- .:*. *: .*:*. :. .:
- :* : :. .::::* :
- : : * *****..... *.: :
- : : .:* .::::::::::**.. .. : *
- : *: .*:::::::::::::::*. * **
- o *** ...**::::::::::::::::::**. * :.:
- : .* : .....***::::::::::::::::::::::*. : : o
- :*. * ..*****:::::::::::::::::::::::::*. * : o
- : . .*::::::::::::::::::::::::::::::::*. :: *
- :* : *::::::::::::::::::::::::::::::::::* : o
- * o * .*::::::::::::::::::::::::::::::::::*. .:o :
- : : : .*::::::::::::::::::::::::::::::::::*. : . :
- : .. .*::::::::::::::::::::::::::::::::::*. * : *
- : : .*::::::::::::::::::::::::::::::::::* : *:
- . :* .*o:::::::::::::::::::::::::::::::*. . :
- : : * .*::::::::::::::::::::::::::::::*. * :*
- o * : .*::::::::::::::::::::::::::::*. : ** :
- :* * .*::::::::::::::::::::::::**. *.. *
- ** * ..*::::::::::::::::::::*.. :* *
- * o .. ..**::::::::::::**.. .:. : :
- : o.: ...******... *. : :.
- : ::o:. *: * *:
- :. : .*:*. :* .*::
- .:* .* *o: .:
- .:*. .*:
- ...
通过上述输出我们发现 Spring Boot 在启动的时候,会将 gif 图片的每一个画面,按照顺序打印在日志中,所有的画面打印完毕后,才会启动 Spring Boot 项目。
如果目录src/main/resources
下同时存在banner.txt
和banner.gif
,项目会先将banner.gif
每一个画面打印完毕之后,再打印banner.txt
中的内容。
项目的启动 Banner 有什么用呢,在一些大的组织或者公司中,可以利用这个特性定制自己专属的启动画面,增加团队对品牌的认同感。
Spring Boot 2 (二):Spring Boot 2 动态 Banner的更多相关文章
- Spring Boot系列二 Spring @Async异步线程池用法总结
1. TaskExecutor Spring异步线程池的接口类,其实质是java.util.concurrent.Executor Spring 已经实现的异常线程池: 1. SimpleAsyncT ...
- <Spring Data JPA>二 Spring Data Jpa
1.pom依赖 <?xml version="1.0" encoding="UTF-8"?> <project xmlns="htt ...
- Spring boot 入门二:Spring Boot配置文件详解
一.自定义属性 当我们创建一个springboot项目的时候,系统默认会为我们在src/main/java/resources目录下创建一个application.properties.同时也支持ym ...
- spring boot 学习(二)spring boot 框架整合 thymeleaf
spring boot 框架整合 thymeleaf spring boot 的官方文档中建议开发者使用模板引擎,避免使用 JSP.因为若一定要使用 JSP 将无法使用. 注意:本文主要参考学习了大神 ...
- Spring Boot系列(二) Spring Boot 之 REST
Rest (Representational Stat Transer) 是一种软件架构风格. 基础理论 架构特性 性能 可伸缩 简化的统一接口 按需修改 组件通信透明 可移植 可靠性 架构约束 C/ ...
- Spring学习(二)—— java的动态代理机制
在学习Spring的时候,我们知道Spring主要有两大思想,一个是IoC,另一个就是AOP,对于IoC,依赖注入就不用多说了,而对于Spring的核心AOP来说,我们不但要知道怎么通过AOP来满足的 ...
- Spring学习(十二)-----Spring @PostConstruct和@PreDestroy实例
实现 初始化方法和销毁方法3种方式: 实现标识接口 InitializingBean,DisposableBean(不推荐使用,耦合性太高) 设置bean属性 Init-method destroy- ...
- Spring学习(十二)-----Spring Bean init-method 和 destroy-method实例
实现 初始化方法和销毁方法3种方式: 实现标识接口 InitializingBean,DisposableBean(不推荐使用,耦合性太高) 设置bean属性 Init-method destroy- ...
- spring学习笔记二:spring使用构造方法注入(set方式注入)
项目目录树: 1.spring的依赖包配置 * SPRING_HOME/dist/spring.jar * SPRING_HOME/lib/log4j/log4j-1.2.14.jar * SPRIN ...
随机推荐
- 关于RTSP-Over-HTTP
--------------------更新2018.07.10------------------- myRtspClient-1.3.0开始支持RTSP-Over-HTTP ----------- ...
- Android提权漏洞CVE-2014-7920、CVE-2014-7921
- shell编程:if语句
条件判断式的两边的空格不能生
- gitlab8.2->8.16->8.17->9.0升级
注:不要跨过8.16升级至8.17,这样做升级过程会报错 ###################################8.2升级至8.16########################## ...
- 关于Sublime Text3的emmet插件和tab快捷键冲突问题
当使用Sublime text3时会遇到快捷键冲突的问题,其中就有安装Emmet之后,tab无法缩进了, 网上有些说看看Browse Packages目录下是否有PyV8插件安装,该插件一般情况下随E ...
- ES6class
类的方法都定义在prototype对象上面,所以类的新方法可以添加在prototype对象上面.Object.assign方法可以很方便地一次向类添加多个方法. 类的内部所有定义的方法,都是不可枚举的 ...
- python中使用rabbitmq消息中间件
上周一直在研究zeromq,并且也实现了了zeromq在python和ruby之间的通信,但是如果是一个大型的企业级应用,对消息中间件的要求比较高,比如消息的持久化机制以及系统崩溃恢复等等需求,这个时 ...
- JavaScript 函数声明与函数表达式的区别 函数声明提升(function declaration hoisting)
解析器在向执行环境中加载数据时,对函数声明和函数表达式并非一视同仁.解析器会率先读取函数声明,并使其在执行任何代码之前可用(可以访问).至于函数表达式,则必须等到解析器执行到它所在的代码行,才会真的被 ...
- django中操作cookie与session
cookie 什么是Cookie Cookie具体指的是一段小信息,它是服务器发送出来存储在浏览器上的一组组键值对,下次访问服务器时浏览器会自动携带这些键值对,以便服务器提取有用信息. Cookie的 ...
- jsp无法访问
一直无法访问jsp: 由于Spring boot使用的内嵌的tomcat,而内嵌的tamcat是不支持jsp页面的,所有需要导入额外的包才能解决. <!-- 解决jsp无法访问 --> & ...