Уровень реализации в Java

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

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

Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
1
0
302
3

Ответы 3

Похоже, вы правильно поняли.

DAO - это часть, которая фактически подключается к базе данных и сохраняет / извлекает данные, а уровень сервиса содержит окружающую бизнес-логику. DAO обычно вызывается из уровня сервиса.

Хорошая практика состоит в том, чтобы поместить в DAO как можно меньше бизнес-логики и вместо этого оставить это на уровне сервиса.

Это разные логические объекты:

  • Целью существования уровня DAO является только обеспечение соединения с БД (вот почему DAO = объект доступа к данным) и выполнение в нем команд SQL (например, с использованием Hibernate).
  • Уровень обслуживания обеспечивает логику между необработанными данными, отправляемыми из базы данных и клиентом. В службе вы вызываете уровень DAO для предоставления объектов. На уровне обслуживания вы обычно выполняете бизнес-правила, проверки, авторизацию и т. д.

Основная идея состоит в том, чтобы не позволять конечным точкам (@Controller, @RestController) напрямую манипулировать уровнем базы данных.

DAO is a data access object, is an object that provides an abstract interface to database. The DAO provides some specific data operations without exposing details of the database

Но у DAO нет конкретной бизнес-логики или ее не должно быть, если у вас есть больше бизнес-логики для применения помимо операций CRUD, вам также понадобится уровень обслуживания.

This DAO can do CRUD operations, it can Create, Retreive, Updata, Delete from our table.

Интерфейс нашего DAO должен быть таким:

public interface UserDao {
    User getUser();
    Set<User> getAllUsers();
    User getUserByUserNameAndPassword();
    boolean insertUser();
    boolean updateUser();
    boolean deleteUser();
}

Уровень обслуживания возьмет на себя бизнес-логику, если вам нужно проверить доступ перед выполнением операций CRUD или ведения журнала, это некоторые примеры.

В архитектуре Контроллер -> уровень обслуживания -> DAO -> сущности ... Контроллер имеет ссылку на уровень сервиса, а сервис имеет ссылку на DAO.

Дополнительная информация по этим ссылкам: https://dzone.com/articles/building-simple-data-access-layer-using-jdbchttps://en.wikipedia.org/wiki/Data_access_object

Другие вопросы по теме