如何解释以下 Spring EL

How to interpretate following Spring EL

我是 Spring 框架的新手,正在尝试学习它。所以我找到了一些很好的视频教程来解释我觉得很好的。

有一部分我无法理解,但我认为与 Spring EL 有关,他在 Spring.

中与缓存注释一起使用

这是我看过的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" 的部分。在他解释的视频中,它与响应值的 ID 映射。这意味着缓存将保存 savedGreeting 的 ID。对吗?

它是如何工作的?我已经在 documentation 中查找 Spring EL,但也找不到相关信息。 Whosebug 上有人可能知道吗?

看看Spring Cache documentation。这列出了使用缓存注释时可用的关键字。基本上:#result 是方法的 return 值,可用于某些操作,如 @CachePut.

这有意义吗?