我创建了一个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
。任何想法是什么修复?
答案 0 :(得分:1)
这个类不是一个spring bean(我在repo中查看了文件),所以Spring根本没有扫描过这个。因此,这从未被称为
尝试为此课程添加@Component
。