Java 如何解读《春晚》
我是Spring框架的新手,正在努力学习它。所以我找到了一些很好的视频教程,解释了我觉得很好的地方 有一部分我无法理解,我认为这与Spring EL有关,他与Spring中的缓存注释一起使用 这是我看的第一集 这就是我想知道的代码部分Java 如何解读《春晚》,java,spring,spring-cache,Java,Spring,Spring Cache,我是Spring框架的新手,正在努力学习它。所以我找到了一些很好的视频教程,解释了我觉得很好的地方 有一部分我无法理解,我认为这与Spring EL有关,他与Spring中的缓存注释一起使用 这是我看的第一集 这就是我想知道的代码部分 @Override @Transactional( propagation = Propagation.REQUIRED, readOnly = false) @CachePut(
@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发送请求,而是从缓存中获取请求<代码>“问候语”
是您创建的缓存管理器的名称。哦,我没有想到要查看缓存的文档。无论如何,它会回答:)