gpt4 book ai didi

java - Spring中如何在非组件类中实现缓存

转载 作者:太空宇宙 更新时间:2023-11-04 10:31:17 24 4
gpt4 key购买 nike

据我了解,为了使 @Cacheable@CachePut 等缓存注释发挥作用,它们应该在 Spring Component 类中使用。但是,我有一个不是 Spring 组件或服务的类,但我需要对该类中的方法之一实现缓存。

@CachePut(cacheNames = {"NAME_OF_CACHE"})
public Object addToCache(String cacheKey) {
// Some computation here
return response;
}

我在将此类转换为组件时遇到了障碍。此类的对象将在运行时初始化。有什么办法可以实现这个功能吗?

最佳答案

您可以手动管理缓存:

1-进入函数时,检查缓存中是否有您想要的记录,如果有则返回。

2- 在函数末尾插入到缓存中,然后返回结果。

注意:您需要在此类中拥有一个缓存实例,这是可行的,但不是更好的选择。

另一方面,如果您在将其转换为组件时遇到问题,因为它需要在运行时实例化。 Spring提供了这个能力,你只需要检查 scope 选项。

您可以根据自己的目的选择原型(prototype)范围。

关于java - Spring中如何在非组件类中实现缓存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49974705/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com