0

我有一个服务项目和网络项目。我需要在两个项目中都有 eh-cache。

在这里,一些时间服务项目也通过批处理工作。所以我们需要在 web 和 service 项目中单独缓存。

此时,我的 web 项目也将 eh-cache 用于自己的目的。我对 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 名称。如下所示。

@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();
    }

上面的配置也不起作用。

谢谢!婆罗提

4

0 回答 0