SpringBoot启动时的Banner设置

简介: 对于使用过SpringBoot的开发者来说,程序启动的时候输出的由字符组成的Spring符号并不陌生。这个是SpringBoot为自己设计的Banner: . ____ _ __ _ _ /\\ / ___'_ __ _ _(_)_ ...

对于使用过SpringBoot的开发者来说,程序启动的时候输出的由字符组成的Spring符号并不陌生。这个是SpringBoot为自己设计的Banner:

 

如果有人不喜欢这个输出,本文说一下怎么修改。

SpringBoot由于大力推行自动配置,取消了各种XML配置和properties配置(当然也提供了使用他们的途径),不再使用web.xml,也优先使用了可执行jar包代替war包。你甚至删掉WEB-INF目录都不影响打包操作,因为jar包用不到这个。

所以SpringBoot默认提供了各种小tricks,但是也强烈建议开发者提供自己的实现来代替默认配置,比如你可以注入一个DataSource,Spring就会使用这个而关闭自己默认的。

 

对于这个banner,却没有那么复杂。最起码的,如果你实在不想要看到它,关闭即可。

SpringBoot的主函数在由@Configuration、@ComponentScan、@EnableAutoConfiguration注解的一个类中,或者三归一的注解为@SpringBootApplication。最简单的写法是

@SpringBootApplication
public class Application {
    public static void main(String[] args) {
        SpringApplication.run(Application.class, args);
    }
}

 而其中的SpringApplication还有一个实例方法run(上面的run是静态方法,这个类一共有四个run方法,其中2个是静态的)和另一个实例方法void setShowBanner(boolean showBanner), which is我们正想用的。所以修改代码如下

public static void main(String[] args) {
//        SpringApplication.run(Application.class, args);
    	SpringApplication application = new SpringApplication(Application.class);
    	application.setShowBanner(false);
    	application.run(args);
    }

 好了,我们不但学习到了如何关闭banner,还学会了一种新的运行程序的方法。moreover,还有一种方法也可以

public static void main(String[] args) {
		// SpringApplication.run(Application.class, args);
		// SpringApplication application = new
		// SpringApplication(Application.class);
		// application.setShowBanner(false);
		// application.run(args);
		new SpringApplicationBuilder().showBanner(true).sources(Application.class).run(args);
	}

 我注释掉了之前我们用的代码,最下面一行是新的方法,使用SpringApplicationBuilder。

关于几种run方法的不同,需要的话可以到官网了解一下。一般用不到。

 

不过上面的方法有些强盗,有些因噎废食。我们只是不想看到默认输出,但是还想看到unique的输出搞啊?

我们可以使用一个文件,在类路径下增加一个banner.txt,比如放到resources文件夹。这个文件会让springBoot关闭自己的输出,而把文件内容打出来。你可以试一下。

另外,这个文件还可以引用外部变量。有四个变量可以用到:

${application.version}                这个是MANIFEST.MF文件中的版本号
${application.formatted-version} 这个是上面的的版本号前面加v后上括号
${spring-boot.version}               这个是springboot的版本号
${spring-boot.formatted-version}同上      

 比如我在banner.txt中写了一行

${spring-boot.version}HHHHH

 输出就是

1.2.6.RELEASEHHHHH

 

最后,SpringBoot提供了一个接口org.springframework.boot.Banner,他的实例可以被传给SpringApplication的setBanner(banner)方法。如果你闲得不行非要着重美化这个命令行输出的话,可以重写Banner接口的printBanner方法。

目录
相关文章
|
21天前
|
JSON Java 数据格式
springboot中表字段映射中设置JSON格式字段映射
springboot中表字段映射中设置JSON格式字段映射
59 1
|
7月前
|
Java Spring
Springboot+jpa如何设置启动项目表不存在就主动创建,字段没有就新增
Springboot+jpa如何设置启动项目表不存在就主动创建,字段没有就新增
499 0
|
2月前
|
Java Spring
【SpringBoot】技能一之修改端口与banner样式
【SpringBoot】技能一之修改端口与banner样式
27 5
|
2月前
|
存储 Java API
简单两步,Spring Boot 写死的定时任务也能动态设置:技术干货分享
【10月更文挑战第4天】在Spring Boot开发中,定时任务通常通过@Scheduled注解来实现,这种方式简单直接,但存在一个显著的限制:任务的执行时间或频率在编译时就已经确定,无法在运行时动态调整。然而,在实际工作中,我们往往需要根据业务需求或外部条件的变化来动态调整定时任务的执行计划。本文将分享一个简单两步的解决方案,让你的Spring Boot应用中的定时任务也能动态设置,从而满足更灵活的业务需求。
100 4
|
2月前
|
监控 Java Maven
springboot学习二:springboot 初创建 web 项目、修改banner、热部署插件、切换运行环境、springboot参数配置,打包项目并测试成功
这篇文章介绍了如何快速创建Spring Boot项目,包括项目的初始化、结构、打包部署、修改启动Banner、热部署、环境切换和参数配置等基础操作。
148 0
|
4月前
|
Java Spring 开发者
解锁 Spring Boot 自动化配置的黑科技:带你走进一键配置的高效开发新时代,再也不怕繁琐设置!
【8月更文挑战第31天】Spring Boot 的自动化配置机制极大简化了开发流程,使开发者能专注业务逻辑。通过 `@SpringBootApplication` 注解组合,特别是 `@EnableAutoConfiguration`,Spring Boot 可自动激活所需配置。例如,添加 JPA 依赖后,只需在 `application.properties` 配置数据库信息,即可自动完成 JPA 和数据源设置。这一机制基于多种条件注解(如 `@ConditionalOnClass`)实现智能配置。深入理解该机制有助于提升开发效率并更好地解决问题。
72 0
|
6月前
|
XML Java 关系型数据库
Springboot启动时报错Property ‘mapperLocations‘ was not specified.
Springboot启动时报错Property ‘mapperLocations‘ was not specified.
190 2
|
5月前
|
Java
springBoot如何设置yml文件,设置端口号
springBoot如何设置yml文件,设置端口号
|
6月前
|
Java
springboot集成swagger2并分组全局设置Authorization
springboot集成swagger2并分组全局设置Authorization
193 0
|
7月前
|
Java Spring
springboot自定义banner
springboot自定义banner
springboot自定义banner

热门文章

最新文章

下一篇
无影云桌面