springboot拿@Configuration当缓存行不行?
小菜一个。我发现配置类注解@Configuration是单例模式且启动时就加载,那当缓存操作上也挺简单的,不知道可不可行?我这样写,存取操作就在注入后getset,请问这样用缓存可好?和redis缓存比如何?
import lombok.Getter;
import lombok.Setter;
import org.springframework.context.annotation.Configuration;
import java.util.Date;
@Configuration
public class BaiDuTokenCache {
//百度token
@Getter
@Setter
private static String baiDuToken;
//存入缓存时的时间
@Getter
@Setter
private static Date cacheUpdateTime;
}
回复
1个回答
test
2024-07-09
这就是个自动注入的Bean对象,默认都是单例的,没特殊说明都不是懒加载的。你用@Component
@Service
也是一样的效果。
这样缓存没啥问题。至于和Redis比较,那就是本地(仅当前虚拟机)缓存与第三方(分布式?)缓存的区别。
堆内缓存:
- 单机没啥问题;
- 多实例的话,需要考虑是否允许多个有效token共存
Redis缓存:
- 单机也没啥问题
- 多实例的话,需要考虑由谁来写入的问题;首次启动或者token失效时,可通过分布式锁方式决定谁来写入/更新
回复
适合作为回答的
- 经过验证的有效解决办法
- 自己的经验指引,对解决问题有帮助
- 遵循 Markdown 语法排版,代码语义正确
不该作为回答的
- 询问内容细节或回复楼层
- 与题目无关的内容
- “赞”“顶”“同问”“看手册”“解决了没”等毫无意义的内容