Реализация 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" добавляется некоторый случайный текст.
Кто-нибудь может дать некоторое представление об этом, пожалуйста?