Memcached @cacheable не кеширует

Я использую Simple Spring Memcached (SSM) с моим приложением весенней загрузки. Я новичок в memcached и пытаюсь понять вещи.

Для приведенного ниже кода

@RestController
public class TestController {


@RequestMapping(value = "/checkend", method = RequestMethod.GET)
@Cacheable(value="defaultCache")
public String checkInteger(int Id){
    RandomClass r = new RandomClass();
    System.out.println("cache miss...");
    return r.testCache("random");
}
}

public class RandomClass {

@Cacheable(value = "defaultCache")
public String testCache(String randomId){
    System.out.println("came here ");
    return "done1";
}
}  

После вызова rest ex: localhost:9000/checkend?Id=7 memcached хранит (7 в качестве ключа, "done1" в качестве значения) и будет извлекать из кэша, когда будет сделан тот же вызов rest..(примечание: он не кэширует результат для метода "testCache" в RandomClass "Почему это?") И даже для

@RequestMapping(value = "/checkend", method = RequestMethod.GET)

public String checkInteger(int Id){
    RandomClass r = new RandomClass();
    System.out.println("cache miss...");
    return r.testCache("random");
}
}

public class RandomClass {

@Cacheable(value = "defaultCache")
public String testCache(String randomId){
    System.out.println("came here ");
    return "done1";
}
}  

Он не кэширует метод "testCache" с заданным входом. Любая причина, почему метод RandomClass в этом случае не кэшируется?

1 ответ

Кэширующие аннотации SSM работают только на bean-компонентах Spring, поэтому измените RandomClass на bean-компонент.

Стоит также отметить, что собственные вызовы (через это) не перехватываются / кэшируются.

Другие вопросы по тегам