如何在标准输出中禁用 Spring Boot 徽标?

Posted

技术标签:

【中文标题】如何在标准输出中禁用 Spring Boot 徽标?【英文标题】:how to disable spring boot logo in stdout? 【发布时间】:2014-12-22 12:53:19 【问题描述】:

有没有办法禁用可爱但非常明显的ASCII Spring boot logo:

  .   ____          _            __ _ _
 /\\ / ___'_ __ _ _(_)_ __  __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
 \\/  ___)| |_)| | | | | || (_| |  ) ) ) )
  '  |____| .__|_| |_|_| |_\__, | / / / /
 =========|_|==============|___/=/_/_/_/
 :: Spring Boot ::        (v1.1.8.RELEASE)

...每次运行 Spring Boot 应用程序时都在 STDOUT 中转储?

我在我的 logback.xml 中将所有日志记录切换为 ERROR,但什么也没做:

<root level="ERROR">
    <appender-ref ref="STDOUT" />
</root>

编辑:在文档中它不称为“徽标”。搜索友好字词是“横幅”。

【问题讨论】:

spring.main.show_banner=false 添加到您的application.properties。 据说“spring.main.show_banner=false”已经被弃用了 【参考方案1】:

http://docs.spring.io/spring-boot/docs/current-SNAPSHOT/reference/htmlsingle/#boot-features-banner

new SpringApplicationBuilder()
    .showBanner(false)
    .sources(Parent.class)
    .child(Application.class)
    .run(args);

编辑 在较新版本的 spring boot(当前是 1.3.3)中,这样做的方法是:

1) 应用程序.properties

spring.main.banner-mode=off

2) application.yml

spring:
    main:
        banner-mode: "off"

3) 主要方法

public static void main(String[] args) 
    SpringApplication app = new SpringApplication(MySpringConfiguration.class);
    app.setBannerMode(Banner.Mode.OFF);
    app.run(args);

Docs

编辑:

要使用环境变量更改此属性,请使用带下划线而不是点的属性。试试:

SPRING_MAIN_BANNER-MODE=关闭

请参阅docs 了解外部配置。

【讨论】:

完美。我疯狂地在谷歌上搜索有关“徽标”的文档,但它被称为横幅。好的,谢谢! 这很好 - 现在我们所有搜索徽标的人都找到了这个页面 (; 应该是 new SpringApplicationBuilder().bannerMode(Banner.Mode.OFF),因为 showBanner 现已弃用 与此等效的环境变量是什么?我无法直接访问 spring boot 应用程序(它是一个 docker 映像),所以我通过 env vars 设置 spring 属性。 对于环境变量,我建议使用“SPRING_MAIN_BANNER_MODE”,用下划线代替“-”,以防服务器不支持环境变量中的破折号。【参考方案2】:

另一种选择是将 banner.txt 文件中的自定义横幅添加到您的类路径中,这将更改为您的自定义横幅。

    在类路径中创建一个文件banner.txt(即:src/main/resources) 编辑您的自定义横幅 运行应用程序

【讨论】:

如果这样做,这些工具可能会有用:google.ca/search?q=ascii+text+generator【参考方案3】:

这在 Spring Boot 1.3 中略有改变。该物业现在是:

spring.main.banner_mode=off

在代码中,现在是:

springApplication.setBannerMode(Banner.Mode.OFF);

或使用构建器:

new SpringApplicationBuilder()
.bannerMode(Banner.Mode.OFF)

【讨论】:

【参考方案4】:

您可以在application.properties 中设置spring.main.show_banner=false,如http://docs.spring.io/spring-boot/docs/current/reference/html/howto-properties-and-configuration.html 中所述。

【讨论】:

【参考方案5】:

如果您使用的是 Spring Boot 1.3 和 application.yml(不是属性),那么您需要引用“OFF”即

spring:
  main:
    banner_mode: 'OFF'

【讨论】:

【参考方案6】:

要删除它:

1)spring.main.banner-mode=off

在文件中添加以上行

application.properties

2) 在 Main java 类中使用它

setBannerMode(Banner.Mode.OFF);

3) 应用内*.yml 文件

spring:
        main :
               banner-mode=off

使用此链接了解更多详情

http://mytechnologythought.blogspot.com/2017/07/how-to-remove-spring-boot-banner.html

【讨论】:

应该是引号或单引号 banner-mode='off' banner-mode="off" 请不要使用 single 或 double 。直接使用 你是对的,基本上。但是一些旧版本(例如 2.1.6.RELEASE)Spring Boot 有 BindException 问题。 Caused by: org.springframework.core.convert.ConverterNotFoundException: No converter found capable of converting from type [java.lang.Boolean] to type [org.springframework.boot.Banner$Mode] at org.springframework.core.convert.support.GenericConversionService.handleConverterNotFound(GenericConversionService.java:321) ~[spring-core-5.1.8.RELEASE.jar:5.1.8.RELEASE] 酷我很高兴 :)【参考方案7】:

在 src/main/resources 下创建一个文件“application.yml”” 并粘贴下面的代码。这样就可以了

spring:
    main:
        banner-mode: "off"

【讨论】:

【参考方案8】:

您可以使用此代码删除横幅

import org.springframework.boot.Banner;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication


public class SpringBootConsoleApplication 

    public static void main(String[] args) throws Exception 

        SpringApplication app = new SpringApplication(SpringBootConsoleApplication.class);
        app.setBannerMode(Banner.Mode.OFF);
        app.run(args);

    


【讨论】:

以上是关于如何在标准输出中禁用 Spring Boot 徽标?的主要内容,如果未能解决你的问题,请参考以下文章

Spring Boot:如何禁用 Tomcat 启动日志记录?

如何使用千分尺指定我想要在spring-boot中使用的度量标准的白名单

如何在 spring-boot 中禁用 spring-data-mongodb 自动配置

如何在 Spring-Boot 2 中禁用安全性? [复制]

Spring Boot - 如何在开发过程中禁用@Cacheable?

如何在 Spring Boot 安全性中禁用 CORS