Подтвердить что ты не робот

Что такое DAO и Service layer в рамках Spring?

Что такое DAO и Service layer в рамках Spring?

Я ищу теоретический ответ.

4b9b3361

Ответ 1

Нет никакого различия в отношении Spring. По соглашению вы можете пометить классы DAO с помощью @Repository и услуг с помощью @Service. Кроме того, первый выполняет некоторый перевод исключений уровня сохранения.

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

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

Ответ 2

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

Службы должны содержать всю вашу логику. Если у вас есть логика separete, вы можете теоретически изменить свой уровень пользовательского интерфейса или слой DAO, не затронув его.

Ответ 3

DAO (Data Access Object) - это шаблон проектирования, который состоит в создании для каждой таблицы в вашей базе данных класса, он предоставляет метод для разделения постоянства объектов и логики доступа к данным.

Ответ 4

Это дает развязку преимуществ. При изменении источника данных способ обработки данных в Сервисе для всех пользователей сервиса (мобильный клиент, веб-клиент) не меняется. Но вам нужно изменить способ извлечения данных из источника данных.

enter image description here