Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何解读《春晚》_Java_Spring_Spring Cache - Fatal编程技术网

Java 如何解读《春晚》

Java 如何解读《春晚》,java,spring,spring-cache,Java,Spring,Spring Cache,我是Spring框架的新手,正在努力学习它。所以我找到了一些很好的视频教程,解释了我觉得很好的地方 有一部分我无法理解,我认为这与Spring EL有关,他与Spring中的缓存注释一起使用 这是我看的第一集 这就是我想知道的代码部分 @Override @Transactional( propagation = Propagation.REQUIRED, readOnly = false) @CachePut(

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

有一部分我无法理解,我认为这与Spring EL有关,他与Spring中的缓存注释一起使用

这是我看的第一集

这就是我想知道的代码部分

    @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;
    }
@覆盖
@交易的(
传播=传播。必需,
只读=假)
@缓存(
value=“问候”,
key=“#result.id”)
公共问候语创建(问候语){
logger.info(“>创建”);
if(greeting.getId()!=null){
记录器错误(
“试图创建问候语,但id属性不为null。”);
抛出新的EntityExistsException(
“id属性必须为null才能持久化新实体。”);
}
问候语savedGreeting=greetingRepository.save(问候语);
logger.info(“
我想知道他使用注释
@CachePut
并将
参数指定为
“#result.id”
的部分。在视频中,他解释说它与响应值的ID映射。这意味着缓存将保存savedGreeting的ID。对吗

它是如何工作的?我在春天里找过艾尔,在那里也找不到什么。Stackoverflow的任何人都可能知道吗?

请看一下。它列出了使用缓存注释时可用的关键字。基本上:
#result
是方法的返回值,可以用于某些操作,如
@CachePut


这有意义吗?

ID是hibernate
Greeting.class中映射的
@ID
。缓存存储在浏览器中,因此下次执行HTTP请求时,它不会向DB发送请求,而是从缓存中获取请求<代码>“问候语”
是您创建的缓存管理器的名称。哦,我没有想到要查看缓存的文档。无论如何,它会回答:)