Spring Context启动时打印应用程序横幅

时间:2015-03-18 02:21:23

标签: java spring

我正在尝试实现一个应用程序Banner,它在应用程序启动时打印版本和其他信息。我尝试过没有成功实现SmartLifecycle和ApplicationListener。

永远不会调用回调方法,并且永远不会打印横幅。我做错了什么?

public class Banner implements ApplicationListener<ContextStartedEvent>
{
    private static final Logger log = LoggerFactory.getLogger(Banner.class);

    @Override
    public void onApplicationEvent(ContextStartedEvent event)
    {
        log.info("*******************************************************");
        log.info("Application v1.8 starting");
        log.info("*******************************************************");
    }
}

2 个答案:

答案 0 :(得分:1)

仅在调用ContextStartedEvent方法时才会引发

ConfigurableApplicationContext.start()。使用ContextRefreshedEvent代替ContextStartedEvent

<强>文档

http://docs.spring.io/spring/docs/current/spring-framework-reference/html/beans.html#context-functionality-events

答案 1 :(得分:0)

如果您使用spring-boot,以下解决方案将适合您。

使用ASCII art generator 要么 使用Spring Boot Banner Generator;如果你想使用任何&#34;图像&#34;为Spring Boot应用程序生成一个横幅。

将生成的ASCII字符复制到/src/main/resources/banner.txt

启动spring-boot应用程序。