springboot拿@Configuration当缓存行不行?

作者站长头像
站长
· 阅读数 4

小菜一个。我发现配置类注解@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个回答
avatar
test
2024-07-09

这就是个自动注入的Bean对象,默认都是单例的,没特殊说明都不是懒加载的。你用@Component @Service也是一样的效果。


这样缓存没啥问题。至于和Redis比较,那就是本地(仅当前虚拟机)缓存与第三方(分布式?)缓存的区别。

堆内缓存:

  • 单机没啥问题;
  • 多实例的话,需要考虑是否允许多个有效token共存

Redis缓存:

  • 单机也没啥问题
  • 多实例的话,需要考虑由谁来写入的问题;首次启动或者token失效时,可通过分布式锁方式决定谁来写入/更新
回复
likes
适合作为回答的
  • 经过验证的有效解决办法
  • 自己的经验指引,对解决问题有帮助
  • 遵循 Markdown 语法排版,代码语义正确
不该作为回答的
  • 询问内容细节或回复楼层
  • 与题目无关的内容
  • “赞”“顶”“同问”“看手册”“解决了没”等毫无意义的内容