为什么spring引导缓存配置不起作用

mi7gmzs6  于 2021-07-05  发布在  Java
关注(0)|答案(0)|浏览(184)

我有一个简单的spring引导应用程序,它与一个自定义jar交互,从第三方应用程序获取数据。
我的spring boot应用程序类如下所示:

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cache.annotation.EnableCaching;

@SpringBootApplication
@EnableCaching
public class TestApplication {
  public static void main(String[] args) {
    SpringApplication.run(TestApplication.class, args);
  }
}

我有这样一个控制器(调用服务方法):

@RequestMapping(value = {"/getTestData.spr"}, method = RequestMethod.GET)
public JsonView getTestData(@RequestParam(value = "childProjectIdKeyName", required = false) String childProjectIdKeyName) {

   //Get All Test Case Data
   testRunsFromTracker = testRunProgressService.getAllTestRunListByProjects(childProjectIdKeyName);

   //Some other logic that returns a JSON View to the front-end
   return new JsonView(someManipulatedCollectionDataHere)
}

所调用的服务类如下所示:

import org.springframework.cache.annotation.Cacheable;
import org.springframework.stereotype.Service;

@Service
public class TestService {
@Cacheable (cacheNames = "testRun", key = "#childProjectIdKeyName")
   public List<TrackerItemDto> getAllTestRunListByProjects(String childProjectIdKeyName) {
      System.out.println(String.format("-----getAllTestRunListByProjects(%s)-----", childProjectIdKeyName));
      //-----some complex code that take a long time to execute everytime it is called-----//
}

我有我的 pom.xml 包括以下依赖项:

<dependency>
   <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-cache</artifactId>
</dependency>

每次我给控制器打电话 TestService ,我得到的控制台打印在声明中,我仍然缺少一些东西使缓存工作。在缓存实现之后,每次都会调用服务方法,这是不需要的。
我是不是漏了什么?

暂无答案!

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

相关问题