我有一个简单的基于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
方法来提取缓存值。之后,出现上述三条线。
否则不会检测到函数错误,但我很好奇,有点担心线程是否卡住了。
暂无答案!
目前还没有任何答案,快来回答吧!