你知道这个场景的Spring Boot特定解决方案吗?
我按照步骤来实现Spting的@Cacheable
,但它对我不起作用,尽管我将代码简化为最简单的示例:
@Controller
public class TestController {
@RequestMapping("/test")
public String testView(){
expensiveMethod();
return "test";
}
@Cacheable("ones")
public void expensiveMethod(){
System.out.println("Cache is not being used");
}
}
对localhost:8080/test
的每个请求都会打印字符串,而不仅仅是第一个字符串。
我用@EnableCaching
正如安德鲁所说,正确的问题应该是“当在同一个班级里被召集时”。
但是,由于建议帖子的答案已经过时,而且有更好的方法对更新版本的Spring很有用,我想分享一下我认为最好的方法:
this
更新后的代码如下所示:
@Controller
public class TestController {
@Autowired TestController self;
@RequestMapping("/test")
public String testView(){
self.expensiveMethod();
return "test";
}
@Cacheable("ones")
public void expensiveMethod(){
System.out.println("Cache is not being used");
}
}
嗨,我用spring初始化器创建了一个简单的Spring Boot应用程序。我在主应用程序类的同一文件夹中添加了一个控制器。 这是给我以下错误的网址http://localhost:8080/welcome 此应用程序没有针对/错误的显式映射,因此您将其视为回退。 Sat Dec 19 12:51:44 IST 2020出现意外错误(类型=未找到,状态=404)。 如果我使用@restContro
从同一bean的另一个方法调用缓存的方法时,Spring缓存不工作。 这里有一个例子来清楚地解释我的问题。 配置: 缓存服务: 结果: 方法调用在第二次调用中使用缓存。但是,当在AService类中调用方法时(在中),Cache未被使用。 这就是SpringCache的工作原理还是我遗漏了什么?
我有看起来像这样的RestController: 我想知道如何将模拟对象传递给其他Controller,后者可以处理数据并将其保存到其他存储库。例如,它可以如下所示: 但我知道这种做法是不允许的。有什么办法可以做到这一点?
我想在ArrayList中添加一个名称,但是当我调用put方法时,console.log显示了一个get方法。 当我调用url时 但它应该是put方法,而不是get方法,这有什么错?
不工作的控制器: 工作控制器:
我使用@cacheable缓存spring 3.2中服务层的方法的结果。服务类内部使用以下方法代码: xml配置 由于使用JDK1.6,无法使用EhCache。通过使用上面的代码模式,我无法缓存列表结果。当我调用上面的方法时,总是调用DAO。告诉我代码有什么问题。 提前道谢。