我正在从下面的方法中获取电影列表,并带有@Cacheable注释。由于它没有任何参数,我将key设置为#root.method.name。
@Cacheable(value="movieFindCache", key = "#root.method.name")
public List<Movie> getMovies(){
...
return movies;
}
现在,我想添加一个新的电影,同样应该添加到上述缓存。
@CachePut(value="movieFindCache", key="getMovies")
public void addNewMovie(){
// create and add new movie to movies list
}
我试过这个,但它给了我例外。
org.springframework.expression.spel.SpelEvaluationException:
Property or field 'getMovies' cannot be found on object of type 'org.springframework.cache.interceptor.CacheExpressionRootObject' - maybe not public?
我们可以在这里使用@CachePut注释,还是有其他方法?
key
是一种Spring表达式语言http://docs.spring.io/spring/docs/current/spring-framework-reference/html/expressions.html
尝试“”
@CachePut(value="movieFindCache", key="'getMovies'")
我正在使用Spring框架和hazelcast缓存在服务层缓存REST APi。我缓存的api有@Cacheable注释,带有cachename和keygenerator,工作很好。我正在寻找使用application属性或Consuler属性启用/禁用缓存的最佳方法。为此,我试图传递@cachable注释的condition属性中的属性,但没有成功。使用这种方法,我最终将在多个地方传递相同的值(
当使用注释()对带有自定义键(如name)的存储库时,会遇到在每个连续请求上运行额外的id字段查询的问题。 请参见下面的存储库代码:
问题内容: 我没有用Java 获得注释。如果它自动为您继承方法,那么如果我需要以自己的方式实现该方法,那又如何呢? 怎么知道我的实现方式? 另外,据说如果我不想使用它,而是以一种老式的Java方式执行它,则必须实现类的,和方法以及类的注释类型方法。 这是为什么? 即使我不知道注释和以前运行良好的程序,我也从未实现过。 请有人从头开始向我解释一下。 问题答案: 只是没有误会:您确实要询问java.l
我没有得到Java中继承的
使用Spring bean作为带有@cacheable注释的键