Иметь 2 ehcache.xml в веб-сервисе и проекте - PullRequest
0 голосов
/ 30 октября 2019

У меня есть сервисный проект и веб-проект. Мне нужно иметь eh-кеш в обоих проектах.

Здесь некоторое время сервисный проект также работает через пакетный режим. Поэтому нам нужен отдельный кеш в веб-проекте и сервисном проекте.

На данный момент мой веб-проект также использует eh-кеш для своих собственных целей. У меня нет большого опыта работы с eh-cache, и я боюсь, что эти два проекта могут столкнуться при совместном развертывании. Я также не нашел соответствующей информации на сайте eh-cache.

Можете ли вы дать мне некоторую информацию о том, как наилучшим образом настроить два проекта, чтобы я мог выполнить вышеуказанные требования?

Веб-проект:

@Bean
public EhCacheCacheManager ehCacheCacheManager() {
    net.sf.ehcache.CacheManager cacheManager = ehCacheManagerFactoryBean().getObject();
    return new EhCacheCacheManager(cacheManager);
}

@Bean
public EhCacheManagerFactoryBean ehCacheManagerFactoryBean() {
    EhCacheManagerFactoryBean cacheManagerFactoryBean = new EhCacheManagerFactoryBean();
    cacheManagerFactoryBean.setConfigLocation(new ClassPathResource("ehcache.xml"));
    cacheManagerFactoryBean.setShared(true);
    return cacheManagerFactoryBean;
}

Сервисный проект:

@Bean
public IServiceCacheManager cacheManager() {
    return new ServiceCacheManager();
}

public ServiceCacheManager() {
    EhCacheManagerFactoryBean factory = new EhCacheManagerFactoryBean();
    factory.setConfigLocation(new ClassPathResource("service-ehcache.xml"));
    factory.setShared(true);
    factory.afterPropertiesSet();
    setCacheManager(factory.getObject());
}

public ServiceCacheManager(net.sf.ehcache.CacheManager cacheManager) {
    super(cacheManager);
}

Кроме того, я также попытался дать имя бина. Как показано ниже.

@Bean(name="WebCacheManager")
    public EhCacheCacheManager ehCacheCacheManager() {
        net.sf.ehcache.CacheManager cacheManager = ehCacheManagerFactoryBean().getObject();
        return new EhCacheCacheManager(cacheManager);
    }


@Bean(name="ServiceCacheManager")
    public ServiceCacheManager cacheManager() {
        return new CBAEngineCacheManager();
    }

Выше конфигурация также не работает.

Спасибо! Bharathi

...