Кофеин Кэш с весенней загрузкой - PullRequest
0 голосов
/ 04 мая 2020

У меня есть слои DAO с использованием дорогостоящего метода:

@Component
@CacheConfig(cacheNames = {"userStories"})
public class UserStoryDaoImpl implements IUserStoryDao {

@Override
@Cacheable
public List<UserStory> getUserStoriesForProjectAndRelease(UserDto userDto, Set<Integer> 
reportProjectId, int releaseId) {
    //Slow performing business logic that returns a list
    return new ArrayList(); 
}

и другого как

@Component
@CacheConfig(cacheNames = {"features"})
public class FeatureDaoImpl implements IFeatureDao {

@Override
@Cacheable
public List<Features> geFeaturesForProjectAndRelease(UserDto userDto, Set<Integer> reportProjectId, 
int releaseId) {
    //Slow performing business logic that returns a list
    return new ArrayList();
 }
}

, а мой класс конфигурации кэша как:

@Configuration
public class CaffeineCacheConfig {

 @Bean
 public CacheManager cacheManager() {
    CaffeineCacheManager cacheManager = new CaffeineCacheManager("features", "userStories");
    cacheManager.setCaffeine(caffeineCacheBuilder());
    return cacheManager;
 }

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

Я использую весеннюю загрузку :: 2.2.6.RELEASE, и мой pom включает:

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-cache</artifactId>
</dependency>
<dependency>
    <groupId>com.github.ben-manes.caffeine</groupId>
    <artifactId>caffeine</artifactId>
    <version>2.8.2</version>
</dependency>

Я что-то упустил в этом? Я хочу сохранить кэш "features" и "userStories" и обновлять его асинхронно после выполнения вызова метода DAO.

Я получаю следующую ошибку:

Невозможно загрузить класс конфигурации: com .packageName.CaffeineCacheConfig

Вызывается: java .lang.NoClassDefFoundError: com / github / benmanes / caffeine / cache / Caffeine

Вызывается: java .lang.ClassNotFoundException com: .github.benmanes.caffeine.cache.Caffeine

Я обнаружил следующие сообщения, связанные с похожей проблемой: Кофеин Git -1 и Кофеин Git -Связанный

...