Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/190.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Spring Cache-@CachePut和@CacheExit之间的实际差异_Java_Spring_Caching_Spring Cache - Fatal编程技术网

Java Spring Cache-@CachePut和@CacheExit之间的实际差异

Java Spring Cache-@CachePut和@CacheExit之间的实际差异,java,spring,caching,spring-cache,Java,Spring,Caching,Spring Cache,我读得越多,对它的了解就越少:) 只要一个简单的问题,如果我想用更新中的新内容刷新listAll,那么在update方法上使用什么?什么是更安全/更好的做法,驱逐或缓存?这让我有点困惑,我读了15个标签D 我还需要删除,我假设需要缓存退出,对吗 @Cacheable(CACHE1) @RequestMapping(method = RequestMethod.POST) public Object listAll(@Valid @RequestParam("status") String st

我读得越多,对它的了解就越少:)

只要一个简单的问题,如果我想用更新中的新内容刷新listAll,那么在update方法上使用什么?什么是更安全/更好的做法,驱逐或缓存?这让我有点困惑,我读了15个标签D 我还需要删除,我假设需要缓存退出,对吗

@Cacheable(CACHE1)
@RequestMapping(method = RequestMethod.POST)
public Object listAll(@Valid  @RequestParam("status") String status) {
   //code
    }

 @CachePut(CACHE1)
//or
 @CacheEvict(value = {CACHE1}, allEntries = true)
 @RequestMapping(method = RequestMethod.POST)
 public Object update(@RequestBody Project project{
    //code
   }

保存对象时使用CachePut,删除对象时使用CacheExit。您也可以在保存时退出,让getter上的可缓存注释处理获取新数据和重新缓存数据,并避免使用CachePut。

谢谢。这两个选项是否同样快速可靠?缓存操作总是比从数据库中获取快。我假设您正在为缓存引擎使用EHCache或类似的东西。我已经用它们编写了大型应用程序,它们非常棒。我有30个控制器,每个控制器都有listAll、update(insert)和delete。所以我害怕使用cacheput,从某种意义上说,有些东西会走错方向,在前端显示不正确的数据:/n如果它们都引用同一个对象/服务来处理数据操作,你应该会没事。如果它们不是,那么您就有设计问题。请记住,为了使缓存注释正常工作,它们必须通过Spring访问,而不是直接访问。