大家在做springboot项目时,启动项目,控制台都会打印spring的默认的banner:
. ____ _ __ _ _
/\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
\\/ ___)| |_)| | | | | || (_| | ) ) ) )
' |____| .__|_| |_|_| |_\__, | / / / /
=========|_|==============|___/=/_/_/_/
:: Spring Boot :: (v2.1.3.RELEASE)
在翻看springboot启动源码时发现,看到了打印banner的代码,支持自定义banner,而且也比较方便。
private Banner getBanner(Environment environment) {
Banners banners = new Banners();
banners.addIfNotNull(getImageBanner(environment));
banners.addIfNotNull(getTextBanner(environment));
if (banners.hasAtLeastOneBanner()) {
return banners;
}
if (this.fallbackBanner != null) {
return this.fallbackBanner;
}
return DEFAULT_BANNER;
}
从获取banner的代码可以看出,先获取图片banner,再获取文本banner,如果都没获取到,使用默认banner。
private Banner getImageBanner(Environment environment) {
String location = environment.getProperty(BANNER_IMAGE_LOCATION_PROPERTY);
if (StringUtils.hasLength(location)) {
Resource resource = this.resourceLoader.getResource(location);
return resource.exists() ? new ImageBanner(resource) : null;
}
for (String ext : IMAGE_EXTENSION) {
Resource resource = this.resourceLoader.getResource("banner." + ext);
if (resource.exists()) {
return new ImageBanner(resource);
}
}
return null;
}
获取图片banner的代码中,会从
spring.banner.image.location
属性中获取图片所在位置,如果无该属性值,会去src/main/resources路径下找banner.["gif", "jpg", "png"](支持这3种图片格式)文件。
private Banner getTextBanner(Environment environment) {
String location = environment.getProperty(BANNER_LOCATION_PROPERTY,
DEFAULT_BANNER_LOCATION);
Resource resource = this.resourceLoader.getResource(location);
if (resource.exists()) {
return new ResourceBanner(resource);
}
return null;
}
如上获取文本banner代码中,从
spring.banner.location
属性中获取文本banner的位置,没有配置该属性的话,默认为src/main/resources路径下的banner.txt。
自定义文本banner
按照上述分析,我们在src/main/resources下新建banner.txt文件,banner的内容我们可以使用工具生成,
推荐网站: http://patorjk.com/software/taag/
生成自定义banner:
将生成的banner copy到banner.txt文件中,补充内容如下:
_ _ _
(_) (_) | |
_ _ _ _ _ _ ___| |_ __ _ _ __
| | | | | | | | / __| __/ _` | '__|
| |_| | | |_| | \__ \ || (_| | |
\__, |_|\__, |_|___/\__\__,_|_|
__/ | __/ |
|___/ |___/
::::::::::::::::::::::::::::::::::::::
author: yiyistar
email: xxxx@qq.com
::::::::::::::::::::::::::::::::::::::
在application.properties添加如下内容(可选):
spring.banner.location=banner.txt
启动springboot,控制台打印如下:
自定义图片banner
在application.properties添加如下内容:
#image位置(可选)
spring.banner.image.location=banner.jpg
#控制banner高度
spring.banner.image.height=15
#控制banner宽度
spring.banner.image.width=45
将制作好的 banner.jpg 加入到src/main/resources文件夹下。启动springboot,控制台打印如下:
如果将banner.jpg 和 banner.txt都放在src/main/resources下,启动时都会打印。