Создание шаблона публикации-подписки для интеграции в шаблон DAO - PullRequest
0 голосов
/ 18 января 2010

Исходя из вопроса ( Как создать службу уведомлений клиента для веб-приложения или использовать шаблон наблюдателя? ), я хотел бы знать.

У меня полностью реализован DAO с компонентами Entity, содержащими только метод getters и setters. Каждый объект отображается в EntityManager.

В настоящее время нет способа уведомлять пользователей о любых изменениях, добавленных / удаленных / обновленных в постоянное хранилище, такое как база данных.

Я хочу знать, как мне реализовать шаблон публикации-подписки (также известный как шаблон наблюдателя), чтобы мне не приходилось расширять мою текущую архитектуру DAO. Я не хочу, чтобы мои сущности наследовали издателя, поскольку не все сущности могут обновляться.

Если есть какие-либо инструменты / рамки / библиотеки, которые я могу использовать в моей ситуации, пожалуйста, дайте мне знать. Кроме того, я вообще не использую постоянные фреймворки (такие как Hibernate), менеджер DAO и Factory были полностью написаны мной с нуля.

С уважением,

Ответы [ 2 ]

1 голос
/ 18 января 2010

Я строю похожую концепцию ... Меня не волнуют все события, и в рамках проектов мы хотим заботиться о различных событиях. Итак, мы создаем шаблон, в котором все операции DAO передаются в DROOLS Fusion и на основе правил и некоторых временных рассуждений уведомляют слушателей через архитектуру уведомлений. В зависимости от ваших потребностей, архитектура может быть простыми слушателями или JMS или электронной почтой ... что угодно. Если у вас нет критериев, просто позаботьтесь о обратном вызове для событий DAO, а затем попросите ваши операции вставки, обновления, удаления DAO передать объект слушателям или очереди JMS какого-либо типа.

Надеюсь, это было ясно ...

Пол

1 голос
/ 18 января 2010

Первое, что я хотел бы предложить, это вставить наблюдаемый объект в ваш DAO. Тогда ваши субмарины будут смотреть на этот объект (я делал подобные вещи в прошлом).

Другое предложение, которое у меня есть, заключается в том, что вы можете добавить триггер к самой базе данных. Это было бы особенно полезно, если за пределами вашего приложения есть что-то, что может изменить БД, о которой вы хотите уведомить свою подчиненную.

Удачи.

...