maven依赖

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-cache</artifactId>
        </dependency>
        <dependency>
            <groupId>com.google.guava</groupId>
            <artifactId>guava</artifactId>
            <version>19.0</version>
        </dependency>

这里使用guava cache

配置(配置文件 or java配置)

配置文件

spring.cache.type=guava
spring.cache.cache-names=cache1,cache2
spring.cache.guava.spec=maximumSize=500,expireAfterAccess=5m

java配置

@Configuration
@EnableCaching
public class CacheConfig {

    public static final String CACHE1 = "cache1";

    public static final String CACHE2 = "cache2";

    @Bean
    public Cache cache1() {
        return new GuavaCache(CACHE1, CacheBuilder.newBuilder()
                .maximumSize(500)
                .expireAfterWrite(5, TimeUnit.MINUTES)
                .build());
    }

    @Bean
    public Cache cache2() {
        return new GuavaCache(CACHE2, CacheBuilder.newBuilder()
                .maximumSize(500)
                .expireAfterWrite(10, TimeUnit.MINUTES)
                .build());
    }

}

使用

    @Cacheable(CacheConfig.CACHE1)
    public User getUser(String token){
        //......
    }

docs


codecraft
11.9k 声望2k 粉丝

当一个代码的工匠回首往事时,不因虚度年华而悔恨,也不因碌碌无为而羞愧,这样,当他老的时候,可以很自豪告诉世人,我曾经将代码注入生命去打造互联网的浪潮之巅,那是个很疯狂的时代,我在一波波的浪潮上留下...