大家在做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: [email protected]
::::::::::::::::::::::::::::::::::::::
在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下,啓動時都會打印。