|
cache4j v0.4 API | |||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
java.lang.Objectnet.sf.cache4j.impl.BlockingCache
Класс BlockingCache это реализация интерфейса Cache
с блокированием на уровне объектов. Вызов любокого метода get, put, remove
приводит к блоктровке идентификатора объекта а потом к снятию блокировки
(в пределах вызваного метода). Если метод get вернул null то
блокировка с идентификатора не снимается. Поток, который заблокировал
идентификатор, должен загрузить объект и поместить в кеш, только после этого
локировака будет снята и все заблокированые потоки смогут продолжить работу.
Такое поведение позволяет загружать(создавать) объект, которого нет в кеше,
только в одном потоке.
Получение экземпляра кеша:
Cache _personCache = CacheFactory.getInstance().getCache("Person");
Получение\помещение объекта:
Long id = ... ;
Person person = null;
try {
person = (Person)_personCache.get(id);
} catch (CacheException ce) {
//throw new Exception(ce);
}
if (person != null) {
return person;
}
try {
person = loadPersonFromDb(id);
} catch (Exception e) {
//throw new Exception(e);
} finally {
try {
_personCache.put(id, person);
} catch (CacheException ce) {
//throw new Exception(ce);
}
}
Удаление объекта:
Person person = ... ;
Long id = person.getId();
removePersonFromDb(id);
try {
_personCache.remove(id);
} catch (CacheException ce) {
//throw new Exception(ce);
}
| Constructor Summary | |
BlockingCache()
|
|
| Method Summary | |
void |
clean()
Выполняет очистку кеша. |
void |
clear()
Удаляет все объекты из кеша |
java.lang.Object |
get(java.lang.Object objId)
Возвращает объект из кеша. |
CacheConfig |
getCacheConfig()
Возвращает конфигруцию кеша |
CacheInfo |
getCacheInfo()
Возвращает информацию о кеше |
void |
put(java.lang.Object objId,
java.lang.Object obj)
Помещает объект в кеш. |
void |
remove(java.lang.Object objId)
Удаляет объект из кеша. |
void |
setCacheConfig(CacheConfig config)
Устанавливает конфигурацию кеша. |
int |
size()
Возвращает количество объектов в кеше |
| Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Constructor Detail |
public BlockingCache()
| Method Detail |
public void put(java.lang.Object objId,
java.lang.Object obj)
throws CacheException
put in interface CacheobjId - идентификатор объектаobj - объект
CacheException - если возникли проблемы, например вычисление размера объекта
java.lang.NullPointerException - если objId==null
public java.lang.Object get(java.lang.Object objId)
throws CacheException
get in interface CacheobjId - идентификатор объекта
CacheException - если возникли проблемы
java.lang.NullPointerException - если objId==null
public void remove(java.lang.Object objId)
throws CacheException
remove in interface CacheobjId - идентификатор объекта
CacheException - Если перед вызовом remove() был вызван метод get()
и он вернул null то при вызове remove() возникнет CacheException.
java.lang.NullPointerException - если objId==nullpublic int size()
size in interface Cache
public void clear()
throws CacheException
clear in interface CacheCacheException - если перед вызовом clear() был вызван метод get()
и он вернул null то при вызове clear() может возникнуть CacheException.public CacheInfo getCacheInfo()
getCacheInfo in interface Cachepublic CacheConfig getCacheConfig()
getCacheConfig in interface Cache
public void setCacheConfig(CacheConfig config)
throws CacheException
setCacheConfig in interface ManagedCacheconfig - конфигурация
CacheException - если возникли проблемы
java.lang.NullPointerException - если config==null
public void clean()
throws CacheException
clean in interface ManagedCacheCacheException - если перед вызовом clean() был вызван метод get()
и он вернул null то при вызове clean() может возникнуть CacheException.
|
cache4j v0.4 API | |||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||