2013-04-19 3 views
3

Я немного смущен об услугах. Почему я должен использовать службы для интеграции в спящий режим? Я думаю, что могу использовать непосредственно интерфейсы DAO. Например, в этом уроке http://www.onlinetechvision.com/?p=566 почему он использовал IUserService вместо IUserDAO. Действительно ли IUserService необходим?Как создать эффективную структуру проекта Spring-Hibernate?

ответ

6

Услуги хороши для нескольких вещей:

  • операции координационная DAO внутри транзакции, поэтому, если логика ваших действий требует многократного SQL вызывает те могут быть совершены или откат вместе.

  • Предоставление места для размещения независимой от бизнеса бизнес-логики. I have a related answer that talks about what goes into services as opposed to controllers.

  • Четкое раскрытие действий, выполняемых вашим приложением на низком уровне. Другими словами, вы можете рассказать, какие вещи пользователь может сделать в приложении, просмотрев методы службы.

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

(Имейте в виду, что я не знаком с JSF (используется в учебнике, связанного в вопросе), если есть JSF-специфический угол на этот вопрос, то я не могу решить эту проблему.)

Check что-то вроде Grails, если вы создаете приложение CRUD. Он предоставляет всю конфигурацию приложения из коробки, включая методы доступа к данным, которые позволяют избежать кодирования DAO, а также позволяет запускать без служб и добавлять их по мере необходимости.

1

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

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