|
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 Cache
objId
- идентификатор объектаobj
- объект
CacheException
- если возникли проблемы, например вычисление размера объекта
java.lang.NullPointerException
- если objId==nullpublic java.lang.Object get(java.lang.Object objId) throws CacheException
get
in interface Cache
objId
- идентификатор объекта
CacheException
- если возникли проблемы
java.lang.NullPointerException
- если objId==nullpublic void remove(java.lang.Object objId) throws CacheException
remove
in interface Cache
objId
- идентификатор объекта
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 Cache
CacheException
- если перед вызовом clear() был вызван метод get()
и он вернул null то при вызове clear() может возникнуть CacheException.public CacheInfo getCacheInfo()
getCacheInfo
in interface Cache
public CacheConfig getCacheConfig()
getCacheConfig
in interface Cache
public void setCacheConfig(CacheConfig config) throws CacheException
setCacheConfig
in interface ManagedCache
config
- конфигурация
CacheException
- если возникли проблемы
java.lang.NullPointerException
- если config==nullpublic void clean() throws CacheException
clean
in interface ManagedCache
CacheException
- если перед вызовом 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 |