Вопрос по spring – Spring 3.1 Cache Abstraction без параметров

9

читать о новомCache Abstraction весной 3.1 я хотел применить эту функцию к своему проекту.

Могу ли я кэшировать вызов метода, который не имеет параметров?

@Cacheable("xCache")
public List<X> loadAllX() {
    ...
}

Связанная запись блога заявляет

a cache lookup is performed using as key the method parameters

поэтому не должно быть возможности кэшировать этот метод, верно?

Short answer: Да, методы без каких-либо аргументов будут кэшироваться, как и любые другие методы. Я предполагаю, что для этого метода в кеше будет ровно одна запись.

возможный дубликатUse @Cahceable for non-argument method in Spring C. Ross

Ваш Ответ

1   ответ
10

Cache SpEL available metadata& Quot; как описано здесь:

http://static.springsource.org/spring/docs/3.1.x/spring-framework-reference/html/cache.html#cache-spel-context

В вашем примере вы можете указать следующее:

@Cacheable(value = "xCache", key = "#root.methodName") 
public List<X> loadAllX() { 
    ... 
} 

Который будет кэшировать список X в «xCache» с ключом «loadAllX»

Похожие вопросы