Spring boot 修改启动图案、小绿叶图标,常见报错,错误处理
SpringBoot自定义配置摘要:文章介绍了SpringBoot项目的个性化配置方法。1)修改启动图案:在resources目录创建banner.txt,可使用在线工具生成ASCII图案;2)替换favicon图标:可禁用默认图标或通过favicon.ico文件替换,也可在页面中单独指定图标;3)解决Bean冲突:处理"could not be registered"报错的方
目录
could not be registered. A bean with that name has already been defined
Injection of autowired dependencies failed
Spring boot 修改启动图案
1、Spring Boot 应用启动的时候,控制台默认打印 Spring 的图案,这个图案称为 banner(banner ),是可以自由定制的,很多公司的 banner 是自己公司的名称或者产品名称。
2、在 Spring Boot 项目的 resources 目录下新建一个 banner.txt 文本文件,然后将需要显示的内容粘贴到此文本文件中即可。
3、如果想像官方一样输出那种 ASCII 图案 ,则可以借助在线的一些制作工具,如文本转 ASCII 码工具:
http://patorjk.com/software/taag/ (推荐)
https://www.bootschool.net/ascii
http://www.network-science.de/ascii/http://www.makepic.net/tool/image2ascii.html --图片转 ASCII 码的工具

4、可以使用 Spring Boot 提供的一些占位符变量:
| 占位符 | 描述 |
|---|---|
| ${application.version} | 项目的 MANIFEST.MF 版本 |
| ${application.formatted-version} | 格式化版本号 |
| ${spring-boot.version} | Spring Boot 版本 |
| ${server.port} | 当前端口号 |
| ${spring.profiles.active} | 当前激活的配置环境 |
| ${date} | 启动时间 |
| ${AnsiColor.NAME} | 控制台颜色(如 GREEN、RED) |
内容示例(纯色风格 + 启动信息):
${AnsiColor.BRIGHT_CYAN}
===========================================
== AbsWeb 启动成功! 🚀 ==
== 端口:${server.port} ==
== 环境:${spring.profiles.active} ==
== 时间:${date} ==
===========================================
${AnsiColor.DEFAULT}
Spring boot 修改小绿叶图标
1、Spring boot web 应用,页面在浏览器上默认显示一个绿色小图标,可以对它进行禁用(不再显示),也可以进行替换。
2、禁用小绿叶图标:全局配置文件中配置:spring.mvc.favicon.enabled = false
3、替换小绿叶图标-方式1:自己制作一个约定名称的 favicon.ico 图标文件,然后放到 resources 目录即可,此时整个应用下的所有页面都会使用此图标。<可以借助在线工具制作 ico 图标,如:favicon制作 - 在线工具>
4、替换小绿叶图标-方式2:在需要替换图标的页面中使用如下标签进行指定,href 指向图标地址,此时图标格式可以是 .ico 以外的普通图片格式,如 .png、.jpg、.gif 等等,名称也可以自己随意指定:
<link rel="icon" type="image/png" th:href="@{/images/favicon.png}">
5、替换小绿叶图标-方式2 的优先级高于 替换小绿叶图标-方式1,即页面内指定的图标优先 resources 目录下的 favicon.ico 文件.

常见报错处理
could not be registered. A bean with that name has already been defined
1、在Spring Boot应用启动时遇到如下错误,原因是在类路径中存在两个相同名称的Bean导致注册失败。
2、解决方案:一)为其中一个Bean改名;二)开启Spring的bean定义覆盖允许,可以通过设置spring.main.allow-bean-definition-overriding 为 true 来允许覆盖,默认是不允许覆盖的。
Error starting ApplicationContext. To display the conditions report re-run your application with 'debug' enabled.
2025-07-09 10:07:18.367 [ERROR][main][org.springframework.boot.diagnostics.LoggingFailureAnalysisReporter.report(LoggingFailureAnalysisReporter.java:40)]:
***************************
APPLICATION FAILED TO START
Description:
The bean 'restTemplate', defined in grp.BgtBasicApplication, could not be registered. A bean with that name has already been defined in class path resource [grp/util/UtilAppConfig.class] and overriding is disabled.
Action:
Consider renaming one of the beans or enabling overriding by setting spring.main.allow-bean-definition-overriding=true
spring:
main:
allow-bean-definition-overriding: true
Injection of autowired dependencies failed
1、服务启动时报错如下,这是因为代码中使用了 "@Value(${xxx})取值,但是又没有使用默认值,而配置文件里面又没有提供相应的配置,所以无法注入值而报错导致无法启动。
2、解决办法:一)使用默认值,比如 @Value(“${xxx:默认值}”);二)配置文件中提供好相应的配置。
Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'perBgtBasicService': Injection of autowired dependencies failed; nested exception is java.lang.IllegalArgumentException: Could not resolve placeholder 'isSyncBgtBasic' in value "${isSyncBgtBasic}"
访问某个微服务的接口时一直往登录页面跳转
1、现象是:某次公司质量管理部打的包,现场下载下来后升级使用,环境是Spring cloud微服务架构,有网关服务、认证服务,然后是业务系统前端服务、后端服务,统一通过网关访问,比如 http://10.104.65.195:1010/basic-web/agencyInfo/agencyEdit?menuid=202409090101
1010是网关服务的端口,basic-web是业务系统前端服务名,升级后,先登录,然后访问上面的前端服务路径,又会自动重定向跳转到登录页面。不通过网关,直接访问业务系统服务也是自动跳转到登录页。


2、解决办法:后面我直接将包里面的下面的依赖包删除就好了,因为我们本身是不使用 spring-security 的,不知道为什么被它们打包进去了。

更多推荐

所有评论(0)