# dlxz-spring-boot-custom-banner **Repository Path**: ntpu/dlxz-spring-boot-custom-banner ## Basic Information - **Project Name**: dlxz-spring-boot-custom-banner - **Description**: SpringBoot 自定义 banner 练习 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2023-05-28 - **Last Updated**: 2023-05-28 ## Categories & Tags **Categories**: Uncategorized **Tags**: 练习, SpringBoot ## README # DLXZ SpringBoot Custom Banner # 简介 SpringBoot 自定义 Banner 练习。 官方文档地址:https://docs.spring.io/spring-boot/docs/2.7.12/reference/html/features.html#features 在官方文档中指出,两种自定义 banner 的方法: 1. 通过将 `banner.txt` 文件添加到类路径或将 `spring.banner.location` 属性设置为此类文件的位置,可以更改启动时打印的横幅。 2. 如果要以编程方式生成横幅,可以使用 `SpringApplication.setBanner(…)` 方法。使用 `org.springframework.boot.Banner` 接口并实现自己的 `printBanner()` 方法。 # 使用 ## 方法一 先找个 banner 生成网站:https://www.bootschool.net/ascii 生成自定义 banner 并根据官方文档的描述,将 banner.txt 文件放在类路径下。一般直接放在类路径下的资源根目录下,也就是所谓的 `src/main/resources` 。 如项目中的 banner 运行截图效果: ![image.png](assets/image1.png) 看起来还不错,哈哈哈哈哈! ## 方法二 编程式 banner ,实现 Banner 接口,自定义输出 banner 的方法即可,如: ```java private static class MyBanner implements Banner { @Override public void printBanner(Environment environment, Class sourceClass, PrintStream out) { out.println("********************************************"); out.println("* *"); out.println("* My Application *"); out.println("* *"); out.println("********************************************"); } } ``` 自定义 MyBanner 实现 Banner 接口,重写 printBanner 方法,接着在启动方法中,将自定义的 banner 设置进去即可。 ```java public static void main(String[]args){ SpringApplication springApplication=new SpringApplication(DlxzSpringBootTinyTemplateApplication.class); springApplication.setBanner(new MyBanner()); springApplication.run(args); } ``` 效果图: ![image.png](assets/image2.png) 注:该编程式 banner 的优先级要远低于使用文件的方式,只有当自定义的 banner 文件查找不到的时候,才会走自定义的编程式 banner 输出。 # 参考资料 + [SpringBoot 官方文档](https://docs.spring.io/spring-boot/docs/2.7.12/reference/html/features.html#features)