Служба представляет собой фасад для пользователя, который предоставляет бизнес-функции, которые пользователь может предпринять. В принципе, если у вас есть набор вариантов использования на низком уровне, методы службы будут соответствовать индивидуальным действиям пользователя. Сервисы транзакционные, как правило, если пользователь делает что-то, мы хотим, чтобы все последствия этого действия были совершены вместе. Разделение между контроллером и сервисом означает, что у нас есть одно место, чтобы использовать специфичные для webapp функции, такие как получение параметров запроса, выполнение проверки и выбор места для переадресации или перенаправления, а также отдельное место для размещения бизнес-логики, зависят от webapp apis и о том, какие объекты обновляются, какие значения и сохраняются, используя какие объекты доступа к данным.
Я вижу много случаев, когда люди, кажется, думают, что им нужна одна услуга для каждого дао. Я считаю, что их предположение состоит в том, что, поскольку объекты доступа к данным и контроллеры и модели являются довольно механическими в отношении того, как они определены, службы должны быть одинаковыми, и они строят их, не обращая внимания на используемые варианты использования. Что происходит, кроме того, что у вас есть много бесполезного кода шаблона обслуживания, вся бизнес-логика заканчивается на контроллере, перепутанном с конкретным веб-кодом, а контроллеры становятся большими и неуправляемыми. Если ваше приложение очень просто, вы можете пройти некоторое время, но оно дезорганизовано, его трудно проверить, и это, как правило, плохая идея. Разделение проблем, сохранение кода инфраструктуры в одном месте и бизнес-код в другом, - это то, к чему мы должны стремиться, а использование сервисов должным образом очень полезно при получении.
Могу ли я ввести DAO в эксплуатацию, только используя spring-mvc и нужно будет только добавить applicationContext.xml ?? – Deam
@ user330281 Да, вы должны вводить DAO в сервисные слои, а около 'пока используете только spring-mvc и нужно будет только добавить applicationContext.xml ??' эта часть мне не понятна –