我理解为了缓存@Cacheable
,@CachePut
这样的注释,它们应该在Spring Component类中使用。但是,我有一个不是Spring组件或服务的类,但我需要在该类中的一个方法上实现缓存。
@CachePut(cacheNames = {"NAME_OF_CACHE"})
public Object addToCache(String cacheKey) {
// Some computation here
return response;
}
我有一个障碍,可以将此类转换为组件。此类的对象将在运行时初始化。有没有办法实现这个功能?
答案 0 :(得分:0)
您可以手动管理缓存:
1-当您输入该功能时,检查缓存是否具有您想要的记录,如果是,则返回。
在函数结尾处插入到缓存之前,返回结果。
注意:你需要在这个类中有一个缓存实例,这是可行但不可取的。
另一方面,如果您在将其转换为组件时遇到问题,因为它需要在运行时进行实例化。 Spring提供此功能,您只需要检查 scope 选项。
您可以选择原型范围。