2016-01-06 2 views
2

Я новичок в 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 знает?

+0

ID - это '@ Id', отображаемый в спящем режиме' Greeting.class'. Кэш хранится в браузере, поэтому при следующем выполнении HTTP-запроса он не отправляет запрос в БД, а получает его из кеша. '" greetings "- имя созданного вами менеджера кэша. – OPK

ответ

3

Взгляните на Spring Cache documentation. В этом списке указаны ключевые слова, доступные при использовании аннотаций кэширования. В основном: #result - это возвращаемое значение метода и может использоваться в определенных операциях, например @CachePut.

Это имеет смысл?

+0

О, я не думал о просмотре документации для кеша. – starcorn

+0

все равно ответит :) – starcorn

Смежные вопросы