SpringBoot启动时的Banner设置

本文介绍如何禁用Spring Boot启动时显示的默认Banner,并提供方法来自定义Banner输出,包括通过修改代码及放置自定义文件的方式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

转载自:http://somefuture.iteye.com/blog/2247401


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

Banner代码  收藏代码
  1.   .   ____          _            __ _ _  
  2.  /\\ / ___'_ __ _ _(_)_ __  __ _ \ \ \ \  
  3. ( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \  
  4.  \\/  ___)| |_)| | | | | || (_| |  ) ) ) )  
  5.   '  |____| .__|_| |_|_| |_\__, | / / / /  
  6.  =========|_|==============|___/=/_/_/_/  
  7.  :: Spring Boot ::        (v1.2.6.RELEASE)  

 

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

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

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

 

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

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

Java代码  收藏代码
  1. @SpringBootApplication  
  2. public class Application {  
  3.     public static void main(String[] args) {  
  4.         SpringApplication.run(Application.class, args);  
  5.     }  
  6. }  

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

Java代码  收藏代码
  1. public static void main(String[] args) {  
  2. //        SpringApplication.run(Application.class, args);  
  3.         SpringApplication application = new SpringApplication(Application.class);  
  4.         application.setShowBanner(false);  
  5.         application.run(args);  
  6.     }  

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

Java代码  收藏代码
  1. public static void main(String[] args) {  
  2.         // SpringApplication.run(Application.class, args);  
  3.         // SpringApplication application = new  
  4.         // SpringApplication(Application.class);  
  5.         // application.setShowBanner(false);  
  6.         // application.run(args);  
  7.         new SpringApplicationBuilder().showBanner(true).sources(Application.class).run(args);  
  8.     }  

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

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

 

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

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

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

Java代码  收藏代码
  1. ${application.version}                这个是MANIFEST.MF文件中的版本号  
  2. ${application.formatted-version} 这个是上面的的版本号前面加v后上括号  
  3. ${spring-boot.version}               这个是springboot的版本号  
  4. ${spring-boot.formatted-version}同上        

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

Text代码  收藏代码
  1. ${spring-boot.version}HHHHH  

 输出就是

Java代码  收藏代码
  1. 1.2.6.RELEASEHHHHH  

 

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值