当前位置: 首页 > news >正文

SpringBoot自定义banner

环境

  • Ubuntu 22.04
  • IntelliJ IDEA 2022.1.3
  • JDK 17.0.3
  • SpringBoot 2.7.3

准备

新建SpringBoot应用,启动程序时,在控制台会输出Spring的banner:

在这里插入图片描述

我们可以定制banner内容,也可以配置banner是否显示。

banner模式

application.properties 文件中添加配置项:spring.main.banner-mode=console | log | off

  • console :在控制台输出
  • log :在日志输出
  • off :关闭banner

banner内容

从上面的图片可见,banner由两部分组成,上面是一个字符图片,下面是一段文本。

要想定制化banner的内容,只需在 src/main/resources 目录下添加文件:

  • banner.gif | jpg | png :banner图片,SpringBoot会自动把它转化为字符图片;
  • banner.txt :banner文本;

自定义banner 图片

首先找一张图片,比如:

在这里插入图片描述

将其复制到 src/main/resources 目录下,并命名为 banner.jpg

application.properties 文件中可以配置图片的高度、宽度、颜色深度等:

spring.banner.image.width=100
spring.banner.image.height=20
spring.banner.image.bitdepth=4

自定义banner文本

src/main/resources 目录下创建 banner.txt 文件,内容如下:

Hello world!  ${spring-boot.formatted-version}

其中, ${spring-boot.formatted-version} 表示格式化的SpringBoot版本号。

运行程序,控制台输出如下:

在这里插入图片描述
此外,还可以指定任意路径,任意文件名的banner文本和图片,例如:

spring.banner.location=classpath:com/example/test0903/xxx.txt
spring.banner.image.location=classpath:com/example/test0903/inter.jpg

注意:测试时, xxx.txt 文件和 inter.jpg 文件位于源码目录的 com.example.test0903 包下,默认情况下,不会把这两个文件复制到 target 目录下的对应位置(因为它们不是Java文件),需要修改 pom.xml 文件,设置resource目录,详见我另一篇文档。

或者如果只想简单试一下,可以直接把文件复制到目标位置。

相关文章:

  • Hi3861 业务代码编写框架
  • Python基于OpenCV监控老鼠蟑螂检测系统[完整源码&部署教程]
  • BIO、NIO、IO多路复用(select/poll/epoll)、信号驱动IO、异步IO
  • Echarts y轴相关配置
  • 02.6 概率
  • 【web-渗透测试方法】(15.2)分析应用程序、测试客户端控件
  • 03.1线性回归
  • 【智能优化算法】基于觅食生境选择的改进粒子群算法(FHSPSO)附 Matlab代码
  • 密码相关----对称加密,非对称加密
  • 02.1、数据操作
  • 离散数学 --- 命题逻辑 -- 命题符号化与命题公式
  • 回坑记之或许是退役赛季?
  • 初识OpenGL (-)EBO元素缓冲对象(Element Buffer Object)
  • typescript真的有学习的必要吗?
  • PyTorch Lightning入门教程(二)
  • JS中 map, filter, some, every, forEach, for in, for of 用法总结
  • 「面试题」如何实现一个圣杯布局?
  • 【跃迁之路】【641天】程序员高效学习方法论探索系列(实验阶段398-2018.11.14)...
  • 2017届校招提前批面试回顾
  • CoolViewPager:即刻刷新,自定义边缘效果颜色,双向自动循环,内置垂直切换效果,想要的都在这里...
  • Druid 在有赞的实践
  • echarts的各种常用效果展示
  • IOS评论框不贴底(ios12新bug)
  • IP路由与转发
  • java概述
  • Java精华积累:初学者都应该搞懂的问题
  • Python 基础起步 (十) 什么叫函数?
  • QQ浏览器x5内核的兼容性问题
  • Ruby 2.x 源代码分析:扩展 概述
  • SpiderData 2019年2月13日 DApp数据排行榜
  • Sublime Text 2/3 绑定Eclipse快捷键
  • 百度地图API标注+时间轴组件
  • 等保2.0 | 几维安全发布等保检测、等保加固专版 加速企业等保合规
  • 前端_面试
  • 浅析微信支付:申请退款、退款回调接口、查询退款
  • 如何使用 OAuth 2.0 将 LinkedIn 集成入 iOS 应用
  • 微信小程序填坑清单
  • 智能合约Solidity教程-事件和日志(一)
  • 转载:[译] 内容加速黑科技趣谈
  • 蚂蚁金服CTO程立:真正的技术革命才刚刚开始
  • ​LeetCode解法汇总2670. 找出不同元素数目差数组
  • ​MPV,汽车产品里一个特殊品类的进化过程
  • ​ubuntu下安装kvm虚拟机
  • # 安徽锐锋科技IDMS系统简介
  • (23)Linux的软硬连接
  • (ISPRS,2023)深度语义-视觉对齐用于zero-shot遥感图像场景分类
  • (二)换源+apt-get基础配置+搜狗拼音
  • (七)Knockout 创建自定义绑定
  • (十三)Maven插件解析运行机制
  • (原创)攻击方式学习之(4) - 拒绝服务(DOS/DDOS/DRDOS)
  • (转)Scala的“=”符号简介
  • (转)关于如何学好游戏3D引擎编程的一些经验
  • .net使用excel的cells对象没有value方法——学习.net的Excel工作表问题
  • ?php echo ?,?php echo Hello world!;?
  • @Autowired 与@Resource的区别