Solomon_肖哥弹架构 跟大家“弹弹” SpringBoot 的整体设计方案与核心功能点,那么今天来看自定义SpringBoot如何自定义启动Logo。 欢迎 点赞,点赞,点赞。
关注本人的公众号Solomon肖哥弹架构获取更多的惊喜
自定义图标存放位置
文字转字符符号,需要使用此类工具完成,将转换之后的内容放入solomonlogo.txt内
Solomonlogo.txt文件内容
${AnsiOrange}
__ __ ______ __
| \ | \ / \ | \
| $$ | $$| $$$$$$\| $$
\$$\/ $$| $$__| $$| $$
>$$ $$ | $$ $$| $$
/ $$$$\ | $$$$$$$$| $$
| $$ \$$\| $$ | $$| $$_____
| $$ | $$| $$ | $$| $$ \
\$$ \$$ \$$ \$$ \$$$$$$$$
${AnsiNormal}
SSSSSSSSSSSSSSS OOOOOOOOO LLLLLLLLLLL OOOOOOOOO MMMMMMMM MMMMMMMM OOOOOOOOO NNNNNNNN NNNNNNNN
SS:::::::::::::::S OO:::::::::OO L:::::::::L OO:::::::::OO M:::::::M M:::::::M OO:::::::::OO N:::::::N N::::::N
S:::::SSSSSS::::::S OO:::::::::::::OO L:::::::::L OO:::::::::::::OO M::::::::M M::::::::M OO:::::::::::::OO N::::::::N N::::::N
S:::::S SSSSSSSO:::::::OOO:::::::OLL:::::::LL O:::::::OOO:::::::OM:::::::::M M:::::::::MO:::::::OOO:::::::ON:::::::::N N::::::N
S:::::S O::::::O O::::::O L:::::L O::::::O O::::::OM::::::::::M M::::::::::MO::::::O O::::::ON::::::::::N N::::::N
S:::::S O:::::O O:::::O L:::::L O:::::O O:::::OM:::::::::::M M:::::::::::MO:::::O O:::::ON:::::::::::N N::::::N
S::::SSSS O:::::O O:::::O L:::::L O:::::O O:::::OM:::::::M::::M M::::M:::::::MO:::::O O:::::ON:::::::N::::N N::::::N
SS::::::SSSSS O:::::O O:::::O L:::::L O:::::O O:::::OM::::::M M::::M M::::M M::::::MO:::::O O:::::ON::::::N N::::N N::::::N
SSS::::::::SS O:::::O O:::::O L:::::L O:::::O O:::::OM::::::M M::::M::::M M::::::MO:::::O O:::::ON::::::N N::::N:::::::N
SSSSSS::::S O:::::O O:::::O L:::::L O:::::O O:::::OM::::::M M:::::::M M::::::MO:::::O O:::::ON::::::N N:::::::::::N
S:::::SO:::::O O:::::O L:::::L O:::::O O:::::OM::::::M M:::::M M::::::MO:::::O O:::::ON::::::N N::::::::::N
S:::::SO::::::O O::::::O L:::::L LLLLLLO::::::O O::::::OM::::::M MMMMM M::::::MO::::::O O::::::ON::::::N N:::::::::N
SSSSSSS S:::::SO:::::::OOO:::::::OLL:::::::LLLLLLLLL:::::LO:::::::OOO:::::::OM::::::M M::::::MO:::::::OOO:::::::ON::::::N N::::::::N
S::::::SSSSSS:::::S OO:::::::::::::OO L::::::::::::::::::::::L OO:::::::::::::OO M::::::M M::::::M OO:::::::::::::OO N::::::N N:::::::N
S:::::::::::::::SS OO:::::::::OO L::::::::::::::::::::::L OO:::::::::OO M::::::M M::::::M OO:::::::::OO N::::::N N::::::N
SSSSSSSSSSSSSSS OOOOOOOOO LLLLLLLLLLLLLLLLLLLLLLLL OOOOOOOOO MMMMMMMM MMMMMMMM OOOOOOOOO NNNNNNNN NNNNNNN
:: version @Solomon.version@
自定义 Banner
/**
* 自定义SpringBoot 图标
*/
public class SolomonBanner implements Banner {
static final AnsiElement ZIPKIN_ORANGE = new AnsiElement() {
@Override public String toString() {
return "38;5;208"; // Ansi 256 color code 208 (orange)
}
};
@Override
public void printBanner(Environment environment, Class<?> sourceClass, PrintStream out) {
try (InputStream stream = new ClassPathResource("solomonlogo.txt").getInputStream()) {
String banner = StreamUtils.copyToString(stream, UTF_8);
// 替换两个扩展属性
banner = banner.replace("${AnsiOrange}", AnsiOutput.encode(ZIPKIN_ORANGE));
banner = banner.replace("${AnsiNormal}", AnsiOutput.encode(AnsiStyle.NORMAL));
out.println(banner);
} catch (Exception ex) {
// 不需要处理
}
}
}
启动入口
/**
* 自定义SpringBoot 启动图标演示
*/
@SpringBootApplication
@EnableBootConfiguration
public class SbootApplication {
public static void main(String[] args) {
new SpringApplicationBuilder(SbootApplication.class).banner(new SolomonBanner()).run(args);
}
}
运行结果
关注&点赞 肖哥 后续讲解,SpringBoot 自定义启动Logo的实现方案
你的点赞与关注 是 Solomon_肖哥弹架构持续的动力。