springboot整合記憶體cache

codecraft發表於2016-08-17

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

相關文章