Я новичок в Spring Framework и пытаюсь ее изучить. Поэтому я нашел хороший видеоурок, объясняющий, что я считаю хорошим.Как интерпретировать следующую весну EL
Есть одна часть, которую я не мог понять, хотя я думаю, что она связана с Spring EL, которую он использовал вместе с аннотацией кэш-памяти весной.
Это video Я смотрел.
И это часть кода, о котором мне интересно.
@Override
@Transactional(
propagation = Propagation.REQUIRED,
readOnly = false)
@CachePut(
value = "greetings",
key = "#result.id")
public Greeting create(Greeting greeting) {
logger.info("> create");
if (greeting.getId() != null) {
logger.error(
"Attempted to create a Greeting, but id attribute was not null.");
throw new EntityExistsException(
"The id attribute must be null to persist a new entity.");
}
Greeting savedGreeting = greetingRepository.save(greeting);
logger.info("< create");
return savedGreeting;
}
Я задаюсь вопросом о той части, где он использовал аннотацию @CachePut
и назначен параметр key
с "#result.id"
. В видео, которое он объяснил, он сопоставляется с идентификатором значения ответа. Это означает, что кеш сохранит идентификатор сохраненногоGreeting. Это верно?
Как это работает? Я смотрел в documentation для Spring EL и не мог найти что-то об этом. Может быть, кто-нибудь из Stackoverflow знает?
ID - это '@ Id', отображаемый в спящем режиме' Greeting.class'. Кэш хранится в браузере, поэтому при следующем выполнении HTTP-запроса он не отправляет запрос в БД, а получает его из кеша. '" greetings "- имя созданного вами менеджера кэша. – OPK