您好,欢迎访问一九零五行业门户网

SpringBoot中banner怎么使用

制作自己的banner
第一步:在src/main/resources下面创建banner.txt。
第二步:访问网站 http://patorjk.com/software/taag,在网站“type something ”处输入想要制作的单词(比如:hello world),会生成对应的字符。也可以通过其他参数来调整字符的样式。
复制生成的字符,粘贴到banner.txt,再次启动程序便可以打印出指定的banner了。
个人比较喜欢的banner是如下图形:
${ansicolor.bright_yellow}//////////////////////////////////////////////////////////////////////             _ooooo_                ////             o8888888o               ////             88 . 88               ////             (| ^_^ |)               ////             o\ = /o               ////           ____/`---'\____              ////          .' \\|   |// `.             ////          / \\||| : |||// \            ////         / _||||| -:- |||||- \            ////         |  | \\\ - /// |  |            ////         | \_| ''\---/'' |  |            ////         \ .-\__ `-` ___/-. /            ////        ___`. .' /--.--\ `. . ___           ////       . '< `.___\_<|>_/___.' >'.         ////      | | : `- \`.;`\ _ /`;.`/ - ` : | |         ////      \ \ `-.  \_ __\ /__ _/  .-` / /         ////   ========`-.____`-.___\_____/___.-`____.-'========     ////              `=---='               ////   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^    ////      佛祖保佑    永不宕机   永无bug         //////////////////////////////////////////////////////////////////////
在新版本的springboot中,支持了gif、jpg和png的图片形式的banner打印。当然,并不会把图片直接打印在控制台,而是将其像素解析转换成assii编码之后打印。
对于gif动图,会把动图的每个图片都打印出来,如果动图比较大,打印时间较长。可以尝试一下,但建议不要使用gif。
在banner.txt中,还可以进行一些设置,比如上图中的${ansicolor.bright_yellow}。
ansicolor.bright_red:设置控制台中输出内容的颜色
application.version:用来获取manifest.mf文件中的版本号
application.formatted-version:格式化后的application.version版本信息
spring-boot.version:spring boot的版本号
spring-boot.formatted-version:格式化后的spring-boot.version版本信息
banner接口
在未指定banner.txt或banner图片时,默认图形存储在哪里了呢?下面我们了解一下banner接口。
@functionalinterfacepublic interface banner {  // 打印banner  void printbanner(environment environment, class<?> sourceclass, printstream out);  enum mode {    // 关闭    off,    // 控制台    console,    // 日志文件    log  }}
在banner接口中提供了打印banner的方法和一个枚举类。枚举类有三个值:off、console、log,用来控制banner的打印,分别对应:关闭打印、控制台打印和日志打印。
banner接口的实现主要有resourcebanner、imagebanner、springbootbanner和其他内部类的实现。其中上面看到的图形的打印就来自于springbootbanner。看一下源代码:
class springbootbanner implements banner {  private static final string[] banner = { ,       .  ____     _      __ _ _,       /\\\\ / ___'_ __ _ _(_)_ __ __ _ \\ \\ \\ \\,      ( ( )\\___ | '_ | '_| | '_ \\/ _` | \\ \\ \\ \\,       \\\\/ ___)| |_)| | | | | || (_| | ) ) ) ),       ' |____| .__|_| |_|_| |_\\__, | / / / /,       =========|_|==============|___/=/_/_/_/ };  private static final string spring_boot =  :: spring boot :: ;  private static final int strap_line_size = 42;  @override  public void printbanner(environment environment, class<?> sourceclass,      printstream printstream) {    for (string line : banner) {      printstream.println(line);    }    string version = springbootversion.getversion();    version = (version != null) ?  (v + version + ) : ;    stringbuilder padding = new stringbuilder();    while (padding.length() < strap_line_size        - (version.length() + spring_boot.length())) {      padding.append( );    }    printstream.println(ansioutput.tostring(ansicolor.green, spring_boot,        ansicolor.default, padding.tostring(), ansistyle.faint, version));    printstream.println();  }}
在printbanner的方法实现中,首先打印了默认的banner字符串数组,然后将spring_boot和版本信息进行拼接打印。
banner的参数设置
banner的参数设定可以通过两种形式,一种是代码的形式,一种是配置文件的形式。
使用代码的形式首先要将默认的main方法进行改造,手动创建springapplication对象,然后设置相应的参数。示例代码:
public static void main(string[] args) {  springapplication app = new springapplication(springbootbannerapplication.class);  app.setbannermode(banner.mode.console);  banner banner = new imagebanner(new classpathresource(banner1.png));  app.setbanner(banner);  app.run(args);}
通过配置文件设置就比较简单,直接在application.properties中进行配置,springboot已经帮我们预制好了相应的参数。
spring.banner.location=classpath:banner1.pngspring.banner.image.margin=2spring.banner.image.height=76spring.banner.charset=utf-8spring.banner.image.invert=falsespring.banner.image.location=banner1.pngspring.main.banner-mode=consolespring.main.show-banner=true
其中spring.main.show-banner来控制是否打印banner,在新版本中不建议使用,可以使用spring.main.banner-mode代替,将其值设置为off即可关闭banner的打印。
引入文本banner通过spring.banner.location来指定,引入图片相关的banner需要通过spring.banner.image.location来指定路径,否则会出现乱码情况。
如果不想显示banner,可以在代码中通过setbannermode(banner.mode.off)方法或通过参数配置spring.main.banner-mode=off来关闭banner的打印。上面示例中已经有所展示。
以上就是springboot中banner怎么使用的详细内容。
其它类似信息

推荐信息