#java #spring #spring-boot #spring-mvc #model-view-controller
Вопрос:
В настоящее время я пытаюсь создать веб-сайт, на котором у меня есть модели товаров и модели пользователей. Я хочу использовать контроллер элементов для отображения информации о пользователе и элементе (которая хранится в базе данных mysql) на одной и той же html-странице.
Как бы я сделал это без необходимости также вводить класс UserService в класс ItemService?
Комментарии:
1. можете ли вы показать свой код о том, как вы показываете элементы на Html-странице прямо сейчас? одним из предложений было бы вызвать службу пользователей из ItemController непосредственно на основе сведений об элементе.
2. Есть ли причина, по которой вы не хотите вводить пользовательский сервис в свой ItemService? Нет ничего плохого в том, чтобы звонить в службы из служб
Ответ №1:
Ничто не мешает вам создать метод службы, который передает обратно DTO, содержащий как Пользователя, так и Элемент. Вы можете внедрить в свой сервис несколько репозиториев и получить обе сущности в рамках одной транзакции.
Вы также можете предоставить отдельные методы в своем сервисе, один для получения пользователя, а другой для получения товара, но в этом случае у вас будет две отдельные транзакции.
Ответ №2:
Спасибо за ответы, ребята, это мне очень помогло. Думаю, я был в основном просто сбит с толку ролью классов обслуживания. Теперь я использую несколько репозиториев для своего класса обслуживания, который затем отправляет DTO обратно контроллеру со всеми необходимыми данными.