博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
SpringBoot启动时的Banner设置
阅读量:6797 次
发布时间:2019-06-26

本文共 2369 字,大约阅读时间需要 7 分钟。

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

 

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

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

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

 

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

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

@SpringBootApplicationpublic 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方法。

转载地址:http://bzlgo.baihongyu.com/

你可能感兴趣的文章
禅城再探索 大数据产业化
查看>>
论UI架构在微服务中的重要性
查看>>
微软Office惊曝严重漏洞:修复方法在此
查看>>
日本研究人员实验成功100Gbps无线宽带连接
查看>>
Aqua Comms携手Ciena 测试海底光缆网络150Gbps波长传输
查看>>
安卓版Chrome将获得全新物联网信标支持
查看>>
苹果是否有能力再造一个企业级App Store?
查看>>
怎样选择合适的云服务器
查看>>
亚欧14国ATM机被攻击自动吐钱,或与东欧黑客团体有关
查看>>
Linux服务器网络连接有问题?Ping工具来帮忙
查看>>
Facebook新功能:自动识别哪些李鬼账号假冒您
查看>>
研发人员开发出一套硬件级别的后门技术
查看>>
电力“十三五” 光伏分布式6000万千瓦迎来机遇
查看>>
高桥洋接任索尼中国总裁:索尼营销第一人
查看>>
知乎iOS客户端下午瘫了 原来是第三方防火墙变更害的
查看>>
监控工程中,如何选择光纤的种类和芯数
查看>>
“小病进社区,大病进医院”难吗?
查看>>
20种 IT 职业明年将大幅涨薪,无线网络工程师最高
查看>>
《C语言编程——零基础初学者指南(第3版)》一第2章 编写第一个C程序2.1 概述...
查看>>
《HTML5+CSS3网页设计入门必读》——1.3 理解Web内容递送
查看>>