Я программирую административную панель jsf для 3-уровневой архитектуры для администрирования значений базы данных. Существует несколько таблиц с несколькими взаимосвязями.
Все объекты-сущности принимаются удаленно из EJB-сеансовых компонентов без сохранения состояния в EAR с использованием Hibernate.
Быстро у меня появилось несколько экземпляров одинаковых Entitie-объектов (строк) в моем коде, поскольку одни и те же объекты были получены несколько раз удаленно.
Теперь я подумал о создании чего-то вроде ServiceLocator для этих Entitie-объектов на уровне области сеанса или приложения, чтобы каждый объект находился в системе только один раз, и каждый раз, когда объект получен, он заменяется кэшированной ссылкой, а его свойства обновлен до новых.
Поскольку вся информация о сущностях уже сохранена в Hibernate xml или аннотациях, было бы лучше использовать их для предоставления этой услуги.
Итак, я хочу, чтобы что-то подобное заботилось о кэшировании и уникальных ссылках, но должно быть между уровнем приложения и веб-уровнем, так как уровень приложения не имеет состояния для обеспечения высокой масштабируемости.