Когда вы аннотируете свой метод аннотацией @Cacheable
, Spring применяет к нему поведение кэширования.Имя кэша используется для группировки данных кэша в той же области кэша.Но для хранения значений в области кэша Spring сгенерирует ключ кэша.
По умолчанию SimpleKeyGenerator используется для генерации значения ключа в кеше.SimpleKeyGenerator
использует параметры метода для генерации ключа кэша.Значение ключа будет заключено в объект SimpleKey .
Итак, в вашем случае он будет делать следующее:
1-й вызов - нет данных в кеше
Как показано выше, хотя имя вашего кэша в @Cacheable
одинаково в обоих случаях, ключи, используемые для хранения результатов метода, различны.При повторном вызове ваши методы:
2-й вызов - данные в кеше