2010-09-30 3 views
4

Я новичок в Spring и зимуют. Я пытаюсь изучить лучшие практики и методологии дизайна в приложениях j2ee.Весна mvc dao и отображение обслуживания bean

У меня есть возможность создать базовое веб-приложение весны mvc. теперь посмотрите на это - как мне сопоставить мои сервисные bean-компоненты с dao beans или просто использовать только dao beans. - Есть ли необходимость в создании классов DAO singleton - Если я использую тот же самый dao bean для jsp, то, например, onSubmit, если мне нужно ввести данные на несколько таблиц (dao beans), то как бы я это сделал. 1 сервисный bean-компонент более чем 1 dao beans ??

и любой refrence материал по проектированию хороший веб-приложение с помощью пружинного спящего режима будет оценено;)

благодаря

ответ

2

Вы должны использовать службы боб. должна быть только логика обслуживания. DAO должен использоваться только для работы с БД.

Теперь вы можете ввести несколько DAO в свой сервисный компонент.

+0

Могу ли я ввести DAO в эксплуатацию, только используя spring-mvc и нужно будет только добавить applicationContext.xml ?? – Deam

+0

@ user330281 Да, вы должны вводить DAO в сервисные слои, а около 'пока используете только spring-mvc и нужно будет только добавить applicationContext.xml ??' эта часть мне не понятна –

1

DAO слой и слой услуг являются различными предприятиями:

DAO отвечает за получение и ввод отдельных объектов из \ к БД. Например, вы получите имя пользователя (id, name, lastname) из базы данных.

Сервисный уровень отвечает за вашу бизнес-логику. Он может использовать несколько объектов DAO для совершения одного действия. Например, отправьте сообщение от одного пользователя другому другому и сохраните его в папке отправки первого пользователя и в папке «Входящие» получателя.

1

Служба представляет собой фасад для пользователя, который предоставляет бизнес-функции, которые пользователь может предпринять. В принципе, если у вас есть набор вариантов использования на низком уровне, методы службы будут соответствовать индивидуальным действиям пользователя. Сервисы транзакционные, как правило, если пользователь делает что-то, мы хотим, чтобы все последствия этого действия были совершены вместе. Разделение между контроллером и сервисом означает, что у нас есть одно место, чтобы использовать специфичные для webapp функции, такие как получение параметров запроса, выполнение проверки и выбор места для переадресации или перенаправления, а также отдельное место для размещения бизнес-логики, зависят от webapp apis и о том, какие объекты обновляются, какие значения и сохраняются, используя какие объекты доступа к данным.

Я вижу много случаев, когда люди, кажется, думают, что им нужна одна услуга для каждого дао. Я считаю, что их предположение состоит в том, что, поскольку объекты доступа к данным и контроллеры и модели являются довольно механическими в отношении того, как они определены, службы должны быть одинаковыми, и они строят их, не обращая внимания на используемые варианты использования. Что происходит, кроме того, что у вас есть много бесполезного кода шаблона обслуживания, вся бизнес-логика заканчивается на контроллере, перепутанном с конкретным веб-кодом, а контроллеры становятся большими и неуправляемыми. Если ваше приложение очень просто, вы можете пройти некоторое время, но оно дезорганизовано, его трудно проверить, и это, как правило, плохая идея. Разделение проблем, сохранение кода инфраструктуры в одном месте и бизнес-код в другом, - это то, к чему мы должны стремиться, а использование сервисов должным образом очень полезно при получении.

2

FWIW - Я просто прошел аналогичный процесс обучения весной. Хорошая новость заключается в том, что в Google много примеров; плохая новость заключается в том, что нет много «полных» примеров, которые хороши для новичков (также, если вы собираетесь нацелиться на v3 Spring, там много пред-v3-вещей, которые могут запутать на основе нового базовый уровень). Для меня это было следующим: началось с образцов приложений на сайте SpringSource (http://www.springsource.org/documentation).Между их несколькими примерами есть почти все части, которые вам понадобятся, по крайней мере, в минимальной форме. Когда я нашел что-то в тех примерах, которые мне были нужны, я искал Google на основе похожих терминов (некоторые из @ аннотаций и т. Д.), Чтобы найти более полную информацию/лучшие примеры по данной теме. Многие из этих поисков привели меня обратно на этот сайт, и именно поэтому я начал посещать здесь - на многие хорошие ответы уже ответил. Я думаю, что это не слишком проницательный ответ, но этот процесс заставил меня справиться и основательно освоить основы.

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