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.4k
1 个回答

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


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

堆内缓存:

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

Redis缓存:

  • 单机也没啥问题
  • 多实例的话,需要考虑由谁来写入的问题;首次启动或者token失效时,可通过分布式锁方式决定谁来写入/更新
推荐问题