玩转 Spring Boot 的启动 Banner
Spring Boot 在启动时默认打印 Banner,可自定义以满足个性化需求。源码通过源码分析,源码我们了解了 Banner 打印流程,源码关闭 Banner 功能的源码源码需要怎么使用关键在于设置 bannerMode 为 Banner.Mode.OFF。Spring Boot 提供了两种设置方式:启动代码中调用 setBannerMode 方法或在 application.properties 中配置 spring.main.banner-mode。源码后者优先级更高。源码对于文本类型的源码 Banner,只需在 resources 目录下创建 banner.txt 文件。源码使用工具如 patorjk.com 或 degraeve.com 可转换文本为文本图或。源码在 banner.txt 中增加占位符,源码如引用 application.properties 中的源码环境变量 app.placeholder=no code,no kill,通过 ${ app.placeholder} 引用。源码System.out.println() 实际上能控制文本颜色,源码通过使用 AnsiColor 指定后续文本颜色。Spring Boot 自动加载资源文件,尝试读取 spring.banner.location 环境变量,若未配置,触动精灵苹果源码默认加载 banner.txt。加载文本流后,使用解析器解析占位符。对于类型的 Banner,配置一张(后缀 jpg | png | gif)至 resource 目录下的 banner 文件。转文本过程包括压缩、遍历像素点并解析颜色,输出可打印文本。转字符操作在打印较大时会减慢启动速度,且无法使用占位符输出配置信息,功能实用性有限。Spring Boot 启动日志颜色的秘诀在于 System.out.println() 支持输出带颜色的文本。功能与知识点并重是正确的读源码方式。
å¦ä½å®å¶ Spring Boot ç Banner
ä¾æ¬¡å¨ Classpath ä¸æ¾ æ件 banner.gif, banner.jpg, å banner.png, å æ¾å°è°å°±ç¨è°ç»§ç» Classpath ä¸æ¾ banner.txt
ä¸é¢é½æ²¡ææ¾å°çè¯, ç¨é»è®¤ç SpringBootBanner, å°±æ¯æ们æ常è§å°çé£ä¸ªï¼
推荐springboot banner(ASCII特殊文字)在线生成工具,实现自定义banner文字
浏览以下的示例,以直观展示ASCII特殊文字生成工具的实际效果。 生成的ASCII特殊文字美观且多样,满足不同的超级顺势指标源码设计需求。 工具不仅提供多种字体特效,还支持直接复制生成的文字,或将其下载至"banner.txt"文件,操作便捷。 访问链接:ASCII特殊文字在线生成工具 对于更高级的定制需求,可以探索更多的ASCII文字和图形选项,部分效果如下图所示。 工具还支持中文宋体和仿宋的转换,适用于多元化的应用场景。Spring Boot 提升你的项目形象:定制启动 Banner 教程
Spring Boot 提升项目形象的关键在于定制启动时的个性化Banner。通过自定义Banner,你可以展示项目独特标识,增强品牌形象。以下是如何实现这一目标的步骤:方法一:在resource目录下创建名为"banner.txt"的文件,输入自定义的文本内容,重启应用程序会展示新设计的Banner。
方法二:如果你希望更高级的定制,可以创建SpringApplication的面向对象源码阅读自定义Banner接口类。
配置选项:使用SpringApplication的setBannerMode方法控制Banner的显示开关和位置,或者通过配置文件进行设置。
对于文字Banner,可以借助如patorjk Banner等在线工具进行设计。修改"banner.txt"并运行,你会看到改变后的效果。 IDEA中也有相关插件,但可能没有预览功能。此外,你还可以探索其他工具如network-science.de/ascii...等来调整Banner的其他配置信息,如版本号。 对于动态Banner,SpringBoot 2版本支持形式,但需谨慎选择以保证输出效果,因为格式要求较严格。想知道Spring如何处理Banner?它实际上会将转换为ASCII图案。获取:配置Spring如何获取。
转换:被转换成ASCII格式以适应Banner显示。贝祖数列源码
通过这些方法,你可以让你的Spring Boot项目启动时展现出独特的个性,提升项目的整体形象。Spring Boot:自定义横幅(Banner)
Spring Boot提供自定义横幅(Banner)功能,通过在classpath中添加或配置属性修改启动时显示的横幅。配置文件应使用UTF-8编码,如需自定义,可设置spring.banner.charset属性。除文本文件外,还可以添加gif、jpg或png文件,并使用spring.banner.image.location属性。将转换为ASCII艺术,显示在文本横幅之上。
对于文本横幅,banner.txt文件内可使用Environment中的属性名及以下占位符(横幅变量)来定制内容。
通过SpringApplication.setBanner(...)方法实现编程式生成横幅,实现自定义打印逻辑的接口org.springframework.boot.Banner包含printBanner()方法。
调整spring.main.banner-mode属性可决定是否启用横幅打印,并将其注册为名为springBootBanner的单例Bean。
在使用${ application.version}和${ application.formatted-version}属性时,应确保使用Spring Boot启动器(Launcher)。直接通过java -cp启动未打包的jar包时,这两个属性可能无法解析。因此,建议使用java org.springframework.boot.loader.JarLauncher启动未打包的jar包,确保初始化所有application.* banner变量,确保属性正确解析。
SpringBootå¦ä½èªå®ä¹banner
æ¹æ¡ä¸
å¨SpringBootå·¥ç¨ç/src/main/resourcesç®å½ä¸å建ä¸ä¸ªbanner.txtæ件ï¼ç¶åå°ASCIIå符ç»å¤å¶è¿å»ï¼å°±è½æ¿æ¢é»è®¤çbanneräºã
${ AnsiColor.BRIGHT_GREEN},--,,--.'|,---,__,-..---..--.--.||,,-+-./|,----._,.,','//|/../|//'`--'_,--.'|'|//'/,---.'||'|.-'-.'||:/`./,','|||,"'||:|/\||,'/___/:||:;_'||||/||||.\.//|':/.-'..''.\\`.||:|||||.;';|.'/|||'/___/:'`----.':|__||||/'..|';/|;:|.\'.\//`--'/||'.'||||--'`---`-'||'|/||,;\\'\|'--'./;:;||/.'__/_:||:|---'\\|--"`--'---'|,/'---'|::\\/\\|---`-'\\/`----''---"`--`-'æ¹æ¡äºæ们å¨å¯å¨SpringBootæ¶ï¼æ§å¶å°ä¼æå°SpringBootLogo以åçæ¬ä¿¡æ¯ï¼è¿ä¸ªæä½æ¯SpringBootåºå®çè¿æ¯å¯é ç½®(èªå®ä¹)çï¼
._________/\\/___'_____(_)______\\\\(()\___|'_|'_||'_\/_`|\\\\\\/___)||_)|(_||))))'|____|.__|_||_|_||_\__,|////=========|_|==============|___/=/_/_/_/::SpringBoot::(v1.5..RELEASE)带çè¿ä¸ªçé®ï¼ç¿»é äºä¸ä¸æºç åç°è¿ä¸ªæä½è¿çå¯ä»¥èªå®ä¹ï¼SpringBootæä¸ä¸ªæ¥å£org.springframework.boot.Banneræ¯ä¸é¨æ¥åè¿ä¸ªæä½çãæ们å¯ä»¥å®ç°è¿ä¸ªæ¥å£æ¥èªå®ä¹æå°Bannerä¿¡æ¯ï¼ä½æ¯ä¸æ¨èèªå·±å»åï¼å 为è¿ä¸ªä¸æ¯ä»ä¹éè¦çåè½ï¼æ²¡å¿ è¦ææ¶é´è±å¨è¿ä¸é¢ï¼æ¢ç¶SpringBootæä¾äºè¿ä¸ªåè½ï¼è¯å®ä¸ºæ们å®ç°äºã
org.springframework.boot.ResourceBanner
ææ¬æ ¼å¼ï¼SpringBootä¼è¯»åé 置项banner.txtåbanner.locationï¼ä»é 置项ä¸è·åçå®çæ件å°åï¼å¦æé ç½®ä¸æ²¡æé ç½®ï¼ä¼æé 置项ä½ä¸ºæ件å»å è½½ï¼
org.springframework.boot.ImageBanner
å¾çæ ¼å¼ï¼SpringBootå è½½é 置项banner.image.locationï¼ä»é 置项ä¸è·åçå®çè·¯å¾ï¼SpringBootä¼æ ¹æ®é 置项çè·¯å¾å è½½æ件ãå¦æ没æé ç½®banner.image.locationï¼è½¬èä¾æ¬¡å è½½banner.gifãbanner.jpgãbanner.pngè¿ä¸ä¸ªä¸åå¨çæ件ï¼
å¦æä¸é¢ä¸¤ç§é½æ²¡æé ç½®ï¼SpringBootå°±ä¼å è½½é»è®¤çBannerï¼ä¹å°±æ¯æç« å¼å¤´ä»ç»çæ¹å¼ã
æ¥ä¸æ¥æä¼ä»ç»å¨ææ¬æ ¼å¼(ResourceBanner);
ç¯å¢ï¼æä½ç³»ç»ï¼MacOSSpringBootçæ¬ï¼1.5..RELEASE
å建å¯å¨ç±»ï¼src/main/java/{ package}/Application.java
@SpringBootApplicationpublicclassApplication{ publicstaticvoidmain(String[]args){ //å¯å¨é¢è²æ ¼å¼å//è¿ä¸æ¯å¯ä¸å¯å¨é¢è²æ ¼å¼çæ¹å¼ï¼æå ´è¶£çåå¦å¯ä»¥æ¥çæºç /***1.AnsiOutput.setEnabled(AnsiOutput.Enabled.ALWAYS);*2.å¨`src/main/resources`ç®å½ä¸æ°å»ºæ件`application.properties`,*å 容为ï¼`spring.output.ansi.enabled=always`**éè¦ï¼å¦æé 置第äºç§æ¹å¼ï¼ç¬¬ä¸ç§æ¹å¼å°±ä¸ä¼èµ·ä½ç¨*/AnsiOutput.setEnabled(AnsiOutput.Enabled.ALWAYS);newSpringApplicationBuilder(Application.class)//.main(SpringVersion.class)//è¿ä¸ªæ¯ä¸ºäºå¯ä»¥å è½½Springçæ¬.bannerMode(Banner.Mode.CONSOLE)//æ§å¶å°æå°.run(args);}}å建Banneræ件
src/main/resource/banner.txt
${ AnsiColor.BRIGHT_YELLOW}//////////////////////////////////////////////////////////////////////_ooOoo_////oo////"."////(|^_^|)////O\=/O////____/`---'\____////.'\\||//`./////\\|||:|||//\/////_|||||-:-|||||-\////||\\\-///||////|\_|''\---/''||////\.-\__`-`___/-./////___`..'/--.--\`..___////.""'<`.___\_<|>_/___.'>'"".////||:`-\`.;`\_/`;.`/-`:||////\\`-.\___\/___/.-`//////========`-.____`-.___\_____/___.-`____.-'========////`=---='////^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^////ä½ç¥ä¿ä½æ°¸ä¸å®æºæ°¸æ BUG//////////////////////////////////////////////////////////////////////${ AnsiColor.BRIGHT_RED}ApplicationVersion:${ application.version}${ application.formatted-version}SpringBootVersion:${ spring-boot.version}${ spring-boot.formatted-version}ä»ä¸é¢çå 容ä¸å¯ä»¥çå°ï¼è¿ä½¿ç¨äºä¸äºå±æ§è®¾ç½®ï¼
${ AnsiColor.BRIGHT_RED}ï¼è®¾ç½®æ§å¶å°ä¸è¾åºå 容çé¢è²ï¼å¯ä»¥èªå®ä¹ï¼å ·ä½åèorg.springframework.boot.ansi.AnsiColor
${ application.version}ï¼ç¨æ¥è·åMANIFEST.MFæ件ä¸ççæ¬å·ï¼è¿å°±æ¯ä¸ºä»ä¹è¦å¨Application.javaä¸æå®SpringVersion.class
{ application.formatted-version}ï¼æ ¼å¼ååç{ application.version}çæ¬ä¿¡æ¯
${ spring-boot.version}ï¼SpringBootççæ¬å·
{ spring-boot.formatted-version}ï¼æ ¼å¼ååç{ spring-boot.version}çæ¬ä¿¡æ¯
ææä»ææå¾çï¼æ们å®ä¹çææ¬æå被ä¸äºé¢è²ï¼é¢è²æ¯å¦ä½è½¬æ¢çï¼å¯ä»¥åèï¼é¢è²ç¹æ
çæå·¥å ·å¦æ让æ们æå·¥çæ¥ç¼è¾è¿äºå符ç»ï¼æ¾ç¶æ¯ä¸ä»¶é常å°é¾çå·®äºãæ以ï¼æ们å¯ä»¥åå©ä¸é¢è¿äºå·¥å ·ï¼è½»æ¾å°æ ¹æ®æåæå¾çæ¥çæç¨äºBannerè¾åºçå符ç»ã
/software/taag
/img2txt.php
笑小枫的SpringBoot系列七SpringBoot控制台自定义banner
本文聚焦于SpringBoot控制台自定义banner的实现过程,旨在为《笑小枫系列-玩转SpringBoot》系列文章增添个性化的品牌标识。
首先,制作banner图像。可以选择在线设计工具,如制作一张包含品牌元素的,如枫叶图案,以符合"笑小枫"的风格。为了保持版权意识,建议在制作过程中使用正版资源或自己设计。
接着,将转换为字符画。可以使用在线工具,例如fontke.com提供的一系列转字符画功能,或者通过编程实现,利用Python等语言的库进行转换。生成的字符画大致展现了轮廓,但可能需要进一步调整以去除冗余字符。
完成字符画的制作后,将字符画内容复制到SpringBoot项目中。在资源目录下创建一个名为banner.txt的文件,将字符画内容粘贴进去。同时,可以添加一些描述性文字,如品牌宣言或项目特色,以增加banner的个性化元素。
配置完成,只需重启SpringBoot应用即可查看到自定义的banner。这个过程简捷,适合希望在控制台界面中体现品牌特色的开发者。
本章内容至此结束。如需进一步了解或获取相关资源,请关注“笑小枫”公众号、访问笑小枫个人博客、访问CSDN或查阅GitHub仓库。欢迎提供反馈,不论是点赞收藏还是提问,都将推动后续文章的更新和文档的同步更新。
SpringBoot开发 - 如何定制自己的Banner?还能用?
在启动Spring Boot程序时,我们通常会看到默认的Banner信息。若希望自定义为项目专属的信息,可通过多种方式实现。首先,可以通过在application.yml中添加配置来实现,或者在resource目录下创建名为banner.txt的文件,并在其中自定义内容。重启应用后,可以看到Banner已更改为自定义内容。SpringApplication还允许设置自定义Banner的接口类,提供更多定制化可能。
设计Banner时,可利用专门的网站如patorjk Banner进行设计。例如,通过修改banner.txt文件的内容,运行后即可看到自定义效果。IDEA中也存在Banner相关插件,但通常不具备预览功能。除了文字形式,Spring Boot 2版本支持使用作为Banner。格式需适当,过大可能导致应用异常。尽管形式的Banner使用较少,但其效果独特。进一步探索,发现Spring Boot能够将转换为ASCII图案,这揭示了Banner生成机制的另一面。
通过github上的示例源码,可以深入了解如何实现转换为ASCII图案的过程。告别碎片化学习,致力于一站式体系化学习后端开发的路径,提供了丰富的资源和指南,帮助开发者掌握Java全栈知识体系。在自定义Banner的过程中,不仅能够提升应用的个性化程度,还能深入理解Spring Boot框架的内部机制,从而实现更为深入的技术探索与应用实践。
2024-11-23 11:07
2024-11-23 10:38
2024-11-23 10:35
2024-11-23 10:10
2024-11-23 09:52