轉自
SpringBoot系列——花里胡哨的banner.txt - huanzi-qch - 博客園 (cnblogs.com)
<div id="cnblogs_post_body" class="blogpost-body blogpost-body-html">
<h2 id="_label_h20"> 前言<button class="cnblogs-toc-button" title="顯示目錄導航" aria-expanded="false"></button></h2>
<p> 我們注意到springboot項目啟動時,控制台會打印自帶的banner,然后對於部分IT騷年來說,太單調太普通太一般了;所以,是時候表演真正的技術了</p>
<p> </p>
<h2 id="_label_h21"> 項目結構<button class="cnblogs-toc-button" title="顯示目錄導航" aria-expanded="false"></button></h2>
<p> 我們只需要在springboot項目的resources文件夾下面創建一個banner.txt文件,springboot啟動的時候會去加載這個文件,項目結構:</p>
<p><img src="https://img2018.cnblogs.com/blog/1353055/201811/1353055-20181106172258270-1259442361.png" alt="" class="medium-zoom-image"></p>
<p> </p>
<h2 id="_label_h22"> banner.txt<button class="cnblogs-toc-button" title="顯示目錄導航" aria-expanded="false"></button></h2>
<p> 這里有幾個定制banner的網站,文字、圖片都可以秀起來,怎么秀就看你的騷操作了</p>
<p> <a href="http://patorjk.com/software/taag" target="_blank" rel="noopener">http://patorjk.com/software/taag</a></p>
<p> <a href="http://www.network-science.de/ascii/" target="_blank" rel="noopener">http://www.network-science.de/ascii/</a></p>
<p> <a href="http://www.degraeve.com/img2txt.php" target="_blank" rel="noopener">http://www.degraeve.com/img2txt.php</a></p>
<p> </p>
<p> banner.txt的內容:</p>
<pre>${AnsiColor.BRIGHT_YELLOW} <br>//////////////////////////////////////////////////////////////////// <br>// _ooOoo_ // <br>// o8888888o // <br>// 88" . "88 // <br>// (| ^_^ |) // <br>// O\ = /O // <br>// ____/`---'\____ // <br>// .' \\| |// `. // <br>// / \\||| : |||// \ // <br>// / _||||| -:- |||||- \ // <br>// | | \\\ - /// | | // <br>// | \_| ''\---/'' | | // <br>// \ .-\__ `-` ___/-. / // <br>// ___`. .' /--.--\ `. . ___ // <br>// ."" '< `.___\_<|>_/___.' >'"". // <br>// | | : `- \`.;`\ _ /`;.`/ - ` : | | // <br>// \ \ `-. \_ __\ /__ _/ .-` / / // <br>// ========`-.____`-.___\_____/___.-`____.-'======== // <br>// `=---=' // <br>// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ // <br>// 佛祖保佑 永不宕機 永無BUG //<br>//////////////////////////////////////////////////////////////////// </pre>
<p><img src="https://img2018.cnblogs.com/blog/1353055/201811/1353055-20181106172554326-79639619.png" alt="" class="medium-zoom-image"></p>
<p> banner.txt配置</p>
<p><code> ${AnsiColor.BRIGHT_RED}</code>:設置控制台中輸出內容的顏色</p>
<p><code> ${application.version}</code>:用來獲取<code>MANIFEST.MF</code>文件中的版本號</p>
<p><code> ${application.formatted-version}</code>:格式化后的<code>${application.version}</code>版本信息</p>
<p><code> ${spring-boot.version}</code>:Spring Boot的版本號</p>
<p> <code>${spring-boot.formatted-version}</code>:格式化后的<code>${spring-boot.version}</code>版本信息</p>
<p> </p>
<p> spring對banner的配置,來自springboot參考手冊,Common application properties:<a href="https://docs.spring.io/spring-boot/docs/2.1.0.RELEASE/reference/htmlsingle/#common-application-properties" target="_blank" rel="noopener">https://docs.spring.io/spring-boot/docs/2.1.0.RELEASE/reference/htmlsingle/#common-application-properties</a></p>
<div class="cnblogs_code"><div class="cnblogs_code_toolbar"><span class="cnblogs_code_copy"><a href="javascript:void(0);" onclick="copyCnblogsCode(this)" title="復制代碼"><img src="//common.cnblogs.com/images/copycode.gif" alt="復制代碼"></a></span></div>
<pre><span style="color: rgba(0, 128, 0, 1)">#</span><span style="color: rgba(0, 128, 0, 1)"> BANNER</span>
spring.banner.charset=UTF-<span style="color: rgba(128, 0, 0, 1)">8</span> <span style="color: rgba(0, 128, 0, 1)">#</span><span style="color: rgba(0, 128, 0, 1)"> Banner file encoding.</span>
spring.banner.location=classpath:banner.txt <span style="color: rgba(0, 128, 0, 1)">#</span><span style="color: rgba(0, 128, 0, 1)"> Banner text resource location.</span>
spring.banner.image.location=classpath:banner.gif <span style="color: rgba(0, 128, 0, 1)">#</span><span style="color: rgba(0, 128, 0, 1)"> Banner image file location (jpg or png can also be used).</span>
spring.banner.image.width=<span style="color: rgba(128, 0, 0, 1)">76</span> <span style="color: rgba(0, 128, 0, 1)">#</span><span style="color: rgba(0, 128, 0, 1)"> Width of the banner image in chars.</span>
spring.banner.image.height= <span style="color: rgba(0, 128, 0, 1)">#</span><span style="color: rgba(0, 128, 0, 1)"> Height of the banner image in chars (default based on image height).</span>
spring.banner.image.margin=<span style="color: rgba(128, 0, 0, 1)">2</span> <span style="color: rgba(0, 128, 0, 1)">#</span><span style="color: rgba(0, 128, 0, 1)"> Left hand image margin in chars.</span>
spring.banner.image.invert=false <span style="color: rgba(0, 128, 0, 1)">#</span><span style="color: rgba(0, 128, 0, 1)"> Whether images should be inverted for dark terminal themes.</span></pre>
<div class="cnblogs_code_toolbar"><span class="cnblogs_code_copy"><a href="javascript:void(0);" onclick="copyCnblogsCode(this)" title="復制代碼"><img src="//common.cnblogs.com/images/copycode.gif" alt="復制代碼"></a></span></div></div>
<p> </p>
<h2 id="_label_h23"> 效果 <button class="cnblogs-toc-button" title="顯示目錄導航" aria-expanded="false"></button></h2>
<p><img src="https://img2018.cnblogs.com/blog/1353055/201811/1353055-20181106172731074-2137398188.png" alt="" class="medium-zoom-image"></p>
<p> </p>
<h2 id="_label_h24"> 結束語<button class="cnblogs-toc-button" title="顯示目錄導航" aria-expanded="false"></button></h2>
<p> 秀兒,是你嗎?</p>
<p> banner默認開啟,如果不想讓它打印怎么辦?</p>
<p> 方法1,在main的run方法設置</p>
<div class="cnblogs_code"><div class="cnblogs_code_toolbar"><span class="cnblogs_code_copy"><a href="javascript:void(0);" onclick="copyCnblogsCode(this)" title="復制代碼"><img src="//common.cnblogs.com/images/copycode.gif" alt="復制代碼"></a></span></div>
<pre><span style="color: rgba(0, 128, 0, 1)">/**</span><span style="color: rgba(0, 128, 0, 1)">
* 啟動主類,springboot的入口
* springboot 默認掃描的類是在啟動類的當前包和下級包
</span><span style="color: rgba(0, 128, 0, 1)">*/</span><span style="color: rgba(0, 0, 0, 1)">
@SpringBootApplication
</span><span style="color: rgba(0, 0, 255, 1)">public</span> <span style="color: rgba(0, 0, 255, 1)">class</span><span style="color: rgba(0, 0, 0, 1)"> SpringbootWebsocketSpringdataJpaApplication {
</span><span style="color: rgba(0, 0, 255, 1)">public</span> <span style="color: rgba(0, 0, 255, 1)">static</span> <span style="color: rgba(0, 0, 255, 1)">void</span><span style="color: rgba(0, 0, 0, 1)"> main(String[] args) {
SpringApplication springApplication </span>= <span style="color: rgba(0, 0, 255, 1)">new</span> SpringApplication(SpringbootWebsocketSpringdataJpaApplication.<span style="color: rgba(0, 0, 255, 1)">class</span><span style="color: rgba(0, 0, 0, 1)">);
</span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">Banner.Mode.OFF 關閉</span>
<span style="color: rgba(0, 0, 0, 1)"> springApplication.setBannerMode(Banner.Mode.OFF);
springApplication.run(args);
}
}</span></pre>
<div class="cnblogs_code_toolbar"><span class="cnblogs_code_copy"><a href="javascript:void(0);" onclick="copyCnblogsCode(this)" title="復制代碼"><img src="//common.cnblogs.com/images/copycode.gif" alt="復制代碼"></a></span></div></div>
<p> 方法2,Edit Configurations --> 勾選Hide banner</p>
<p><img src="https://img2018.cnblogs.com/blog/1353055/201811/1353055-20181108102452583-1276364041.png" alt="" class="medium-zoom-image"></p>
<p> </p>
<h2 id="_label_h25"> 代碼開源<button class="cnblogs-toc-button" title="顯示目錄導航" aria-expanded="false"></button></h2>
<p> 代碼已經開源、托管到我的GitHub、碼雲:</p>
<p> GitHub:<a href="https://github.com/huanzi-qch/springBoot" rel="noopener">https://github.com/huanzi-qch/springBoot</a></p>
<p> 碼雲:<a href="https://gitee.com/huanzi-qch/springBoot" rel="noopener">https://gitee.com/huanzi-qch/springBoot</a></p>
</div>