Spring启动ApplicationListener未在应用启动时运行

时间:2017-12-28 12:20:20

标签: spring spring-boot groovy

我创建了一个spring-boot-troubleshooting repo on GitHub,可以完全重现此错误。

我正在构建一个基于Spring Boot的REST服务,并且很难让startup listener工作:

@Slf4j
class StartupListener implements ApplicationListener<ContextRefreshedEvent> {
    @Autowired
    ScheduledReporter metricReporter

    @Override
    void onApplicationEvent(ContextRefreshedEvent event) {
        log.info('StartupListener is starting...')
        metricReporter.start(1, TimeUnit.SECONDS)
    }
}

当我运行应用程序时:

./gradlew build && java -Dspring.config=. -jar build/libs/spring-boot-troubleshooting.jar

所有内容都启动时没有错误/异常,但我从未看到我的“ StartupListener正在启动... ”日志消息打印到控制台。这告诉我Spring是而不是解雇我的StartupListener。任何想法是什么修复?

1 个答案:

答案 0 :(得分:1)

这个类不是一个spring bean(我在repo中查看了文件),所以Spring根本没有扫描过这个。因此,这从未被称为 尝试为此课程添加@Component