Реализация Spring Cache Custom Key Generator не работает должным образом

Я пытаюсь кешировать данные и пытаюсь сгенерировать пользовательский ключ для каждого значения, которое я вставляю в (Redis) кеш. Даже после реализации пользовательского генератора ключей генерируемый ключ - это не то, что я написал в своей собственной логике генератора ключей. По моей логике, есть некоторый текст, который добавляется.

открытый класс CustomKeygen реализует KeyGenerator {

@Override
public Object generate(Object target, Method method, Object... params) {
    // TODO Auto-generated method stub
    return target.getClass().getSimpleName() + "_" + method.getName() + "_"
            + StringUtils.arrayToDelimitedString(params, "_");  
    }
}

Этот метод из класса контроллера:

@GetMapping("/books/cache/{isbn}")
@Cacheable(value="books", keyGenerator="customKeygen")
public Book cacheableTest(@PathVariable("isbn") String isbn) {
    System.out.println("Inside Cacheable");
    return bookRepository.getByIsbn(isbn);
}

И после того, как данные кэшируются, ключ, сгенерированный в кэше, выглядит следующим образом:

127.0.0.1:6379> ключи *

1) "books: \ xac \ xed \ x00 \ x05t \ x00 \ x1eBookResource_cacheableTest_100"

"BookResource_cacheableTest_100", это то, что я сгенерировал, используя свой собственный генератор ключей, но к ключу "books:\xac\xed\x00\x05t\x00\x1e" добавляется некоторый случайный текст.

Кто-нибудь может дать некоторое представление об этом, пожалуйста?

0 ответов

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