Spring Boot自定义Banner
本文最后更新于 2024-04-25,欢迎来到我的Blog! https://www.zpeng.site/
Spring Boot自定义Banner
在Spring Boot中,可以通过在src/main/resources目录下创建一个名为banner.txt的文件来自定义启动Banner。Spring Boot会在启动时尝试读取这个文件,并以此作为Banner。
你也可以通过实现Banner接口或者继承SpringBootBanner类来编写自定义Banner。然后在Spring Boot应用的main方法中注册自定义Banner。
1、banner.txt
只需要在Spring Boot工程的/src/main/resources
目录下创建一个banner.txt
文件,然后将ASCII字符画复制进去,就能替换默认的banner了。
自定义位置
spring:
banner:
# 或者 static/banner.txt
location: classpath:static/banner.txt
application.yml
learn:
version: 1.0.0
banner.txt
${AnsiColor.BRIGHT_GREEN}
Application Version: ${learn.version}
Spring Boot Version: ${spring-boot.version}${spring-boot.formatted-version}
${AnsiColor.BRIGHT_RED}
Spring Boot Version: ${spring-boot.version}${spring-boot.formatted-version}
////////////////////////////////////////////////////////////////////
// _ooOoo_ //
// o8888888o //
// 88" . "88 //
// (| ^_^ |) //
// O\ = /O //
// ____/`---'\____ //
// .' \\| |// `. //
// / \\||| : |||// \ //
// / _||||| -:- |||||- \ //
// | | \\\ - /// | | //
// | \_| ''\---/'' | | //
// \ .-\__ `-` ___/-. / //
// ___`. .' /--.--\ `. . ___ //
// ."" '< `.___\_<|>_/___.' >'"". //
// | | : `- \`.;`\ _ /`;.`/ - ` : | | //
// \ \ `-. \_ __\ /__ _/ .-` / / //
// ========`-.____`-.___\_____/___.-`____.-'======== //
// `=---=' //
// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ //
// 佛祖保佑 永不宕机 永无BUG //
////////////////////////////////////////////////////////////////////
【下面这些是配置在 banner 文件里面的:】
${application.version}: 在MANIFEST.MF文件定义的应用程序版本号
${application.formatted-version}:在MANIFEST.MF文件定义的应用程序版本号。增加v前缀,并用括号括起来
${spring-boot.version}: Spring Boot的版本号
${spring-boot.formatted-version} Spring Boot的版本号,增加v前缀,并用括号括起来
${Ansi.NAME}、${AnsiColor.NAME}、${AnsiBackground.NAME}、${AnsiStyle.NAME}):ANSI转义码的名称
${application.title}:在MANIFEST.MF文件定义的应用程序标题
测试
工具
借助这些工具,可以轻松地根据文字或图片来生成用于Banner输出的字符画。
https://patorjk.com/software/taag/
2、继承SpringBootBanner类
CustomBanner
package com.example.mail.demo;
import org.springframework.boot.Banner;
import org.springframework.core.env.Environment;
import java.io.PrintStream;
/**
* 自定义启动banner类,用于在应用启动时显示自定义的banner信息。
* 实现了Spring Boot的Banner接口。
*/
public class CustomBanner implements Banner {
// 定义了一个字符串常量,存储自定义banner的文本内容。
private static final String BANNER =
" _ _ _____ \n" +
" | | | | | __| \n" +
" | | __ _ _ __ ___ __| | ___ | |__ ___ _ __ \n" +
" | |/ _` | '_ \\ / _ \\ / _` |/ _ \\ | __| / _ \\ '__|\n" +
" | | (_| | | | | (_) | (_| | (_) | | |___| __/ | \n" +
" |_|\\__,_|_| |_|\\___/ \\__,_|\\___/ |______|\\___|_| \n";
/**
* 打印banner方法,当Spring Boot应用启动时调用。
*
* @param environment Spring环境,可用于获取应用配置等信息,本方法未使用该参数。
* @param sourceClass 调用打印banner的方法的类,本方法未使用该参数。
* @param out 打印流,用于输出banner到指定的输出流。
*/
@Override
public void printBanner(Environment environment, Class<?> sourceClass, PrintStream out) {
// 输出定义好的banner文本。
out.println(BANNER);
}
}
启动类
package com.example.mail;
import com.example.mail.demo.CustomBanner;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class MailApplication {
public static void main(String[] args) {
SpringApplication app = new SpringApplication(MailApplication.class);
app.setBanner(new CustomBanner());
app.run(args);
}
}
测试
- 感谢你赐予我前进的力量