У меня есть два метода: первый возвращает список элементов, а второй возвращает один элемент:
List<User> getUsersFromExternalSystem(List<Integer> userIds);
User getUserFromExternalSystem(Integer userId);
Я бы хотел, чтобы Spring кэшировал результаты этих двух методов, чтобы при создании спискавызывается метод элементов (getUsersFromExternalSystem()
), он кэширует результаты для предоставленных идентификаторов (userIds
), а когда вызывается метод одного элемента (getUserFromExternalSystem()
) с идентификатором, ранее предоставленным методу списка элементов, он используеткеш.
Я могу просто применить @Cacheable
к этим методам, тогда (если я правильно понимаю), когда я вызываю:
getUsersFromExternalSystem(Arrays.asList(1, 2))
результаты будут кэшироваться, но когда я вызываю
getUserFromExternalSystem(1);
кеш не будет использоваться. Как это сделать весной?