如何使用spring配置缓存

c9x0cxw0  于 2021-07-03  发布在  Java
关注(0)|答案(1)|浏览(326)

我有一个简单的spring应用程序。我需要在一些每次调用都很昂贵的服务上实现缓存。
我有这样一个配置类:

@Configuration
@EnableCaching
public class CachingConfig {

@Bean (name = "caffeineCacheManager")
public CacheManager cacheManager() {
    CaffeineCacheManager cacheManager = new CaffeineCacheManager("projectList", "backlog", "childProjectList", "testRun");
    cacheManager.setCaffeine(caffeineCacheBuilder());
    return cacheManager;
}

Caffeine< Object, Object > caffeineCacheBuilder() {
    return Caffeine.newBuilder()
            .initialCapacity(100)
            .maximumSize(500)
            .expireAfterAccess(1, TimeUnit.MINUTES)
            .weakKeys()
            .recordStats();
}
}

我的 pom.xml 包括:

<dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-context-support</artifactId>
        <version>5.2.8.RELEASE</version>
    </dependency>
    <dependency>
        <groupId>com.github.ben-manes.caffeine</groupId>
        <artifactId>caffeine</artifactId>
        <version>2.8.8</version>
    </dependency>

我有一个方法需要像这样缓存:

@Cacheable(value = "projectList", cacheManager = "caffeineCacheManager")
public Map<String, String> getProjectList() {
    return getProjectList(); //**SOME EXPENSIVE CALL**
}

每次我运行我得到的应用程序 java.lang.NoClassDefFoundError: com/github/benmanes/caffeine/cache/Caffeine .
以下是完整的堆栈跟踪:https://textuploader.com/1eil3 我不知道我哪里做错了,或者我是否遗漏了什么。

uurv41yg

uurv41yg1#

我分析了你的代码,我认为perphaps的问题与某个库有一个旧版本的咖啡因有关。检查依赖关系树

相关问题