SpringCache&scheduler:SpringBoot应用程序的控制台在我启动api调用之前不会显示“在1ms内完成初始化”?

k75qkfdt  于 2021-07-13  发布在  Java
关注(0)|答案(0)|浏览(373)

我有一个简单的基于spring引导的应用程序,它在应用程序启动时将一个字符串值存储到spring缓存中,还有一个返回所述缓存值的控制器方法。

@EventListener(ApplicationReadyEvent.class)
@Cacheable(value = "fruit")
public String callFruit() {
    log.info("Fruit is being updated in cache now!");
    this.fruit = "Apple"
    return this.fruit;
}

和控制器方法来简单地调用相同的方法来检查缓存的值:

@GetMapping("/fruitCache")
public @ResponseBody
ResponseEntity<String> getFruitFromCache() {
    return new ResponseEntity<>(fruitService.callFruit(), HttpStatus.OK);
}

一切正常控制台显示日志 "Fruit is being updated in cache now!" ,但有一个怪癖:

Initializing Spring DispatcherServlet 'dispatcherServlet'
Initializing Servlet 'dispatcherServlet'
Completed initialization in 1 ms

这三行永远不会出现在控制台中,直到我使用postman触发一个api调用来调用同一行 @Cacheable 方法来提取缓存值。之后,出现上述三条线。
否则不会检测到函数错误,但我很好奇,有点担心线程是否卡住了。

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题