2014-02-17 3 views
1

Я должен получить реализацию интерфейса Spring Cache, которая работает с Coherence. Насколько я могу исследовать, такая реализация не обеспечивается Spring или Coherence (как и для ehcache, т. Е.). Итак, я должен был сделать свой собственный, который я вставляю внизу. Он хорошо работает на интеграционных тестах, но я хотел бы знать, сталкивался ли кто-то с аналогичной проблемой, и имеет какое-либо предложение или исправление этого кода.Весенний кэш с Oracle Coherence

import com.tangosol.net.CacheFactory; 
import com.tangosol.net.NamedCache; 

public class MyCoherenceCache implements Cache { 
    private final NamedCache cache; 

    private static int instanceCounter = 0; 

    @Override 
    public synchronized void clear() { 
     cache.clear(); 
    } 

    @Override 
    public synchronized void evict(Object object) { 
     cache.remove(object); 
    } 

    @Override 
    public synchronized ValueWrapper get(Object key) { 
     if (cache.get(key) == null) { 
      return null; 
     } else { 
      return new SimpleValueWrapper(cache.get(key)); 
     } 
    } 

    @Override 
    public String getName() { 
     return cache.getCacheName(); 
    } 

    @Override 
    public Object getNativeCache() { 
     throw new RuntimeException("Error: Unimplemented method!"); 
    } 

    @Override 
    public synchronized void put(Object arg0, Object arg1) { 
     cache.put(arg0, arg1); 

    } 

    MyCoherenceCache(String cacheName) { 
     super(); 
     instanceCounter++; 
     cache = CacheFactory.getCache(cacheName); 
    } 

    public static int getInstanceCounter() { 
     return instanceCounter; 
    } 

} 
+0

с какими проблемами вы сталкиваетесь? Исключения? –

+0

На самом деле, я не сталкиваюсь с какими-либо проблемами. Я просто хотел бы знать, можно ли улучшить код. Или можно избежать некоторых потенциальных проблем. – Andres

ответ

1

Вы хотите взглянуть на JSR-107 (также известный как JCache), который является формальным эквивалентом собственных Кэширование аннотаций Spring, в added in Spring v3.1. Полностью сертифицированная поддержка JCache должна быть in the next release of Oracle Coherence (v12.1.3)

+0

Я буду, спасибо. – Andres

+1

Yup! Это из! См .: http://docs.oracle.com/middleware/1213/coherence/develop-applications/jcache_part.htm – cpurdy

Смежные вопросы