Использование сущности против использования Dto при загрузке Spring - PullRequest
0 голосов
/ 08 мая 2018

Обычно, когда я создаю REST-приложения, я создаю их следующим образом:

Контроллер (получение / возврат Dtos) -> Сервис (получение и возврат Dtos и внутреннее сопоставление между объектами с помощью MapStruct) -> Хранилища (всегда получать объекты)

Но я понял, что теперь мы можем использовать свойство spring:

spring.jpa.open-in-view=false

Так что мне интересно, нужно ли по-прежнему использовать Dto в Spring REST-приложениях и каковы последствия их использования или их избегания?

1 Ответ

0 голосов
/ 08 мая 2018

Я думаю, что нет правильного метода. Как вы сказали, нам нужно обсудить компромиссы.

Разработка с использованием одной модели для всех слоев может ускорить вашу разработку. Вы не будете тратить время на создание нескольких DTO (а также не будете создавать сопоставление между вашей моделью сущности и DTO). Тем не менее, вы будете пара всех. Небольшое изменение в вашей модели может повлиять на все слои, и вам, вероятно, придется иметь дело с этим. Больше усилий может быть потрачено всякий раз, когда вам нужно адаптировать свой код.

Альтернативой является наличие DTO (или выделенных / специфических моделей) для каждого уровня, что может увеличить время разработки. В этом случае, когда запрашивается изменение, влияние на другие уровни может быть небольшим. Я имею в виду, что риск разбить вещи в других слоях уменьшается. Как и в вашем вопросе, изменение в модели сущностей не повлияет на REST API, поскольку оно предоставляет только DTO.

Подводя итог, основной вопрос: вы предпочитаете "скорость разработки" или "потерю связи между слоями / классами"?

Как видите, все зависит от ваших потребностей.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...