Это довольно сложный вопрос, чтобы ответить в нескольких словах. Вы просите целую архитектуру, которая будет сильно зависеть от выбранного шаблона проектирования, но, учитывая, что у вас есть контроллеры и сервисы, позвольте мне выразить это так. MVS - это просто упрощение и не идеальный подход. Это вызовет еще много вопросов, таких как.
- Сколько логики должно быть в контроллере?
- Должна ли модель содержать какую-либо логику?
- Должно ли представление содержатьлогика?
На подобные вопросы очень сложно ответить, поскольку они очень субъективны. Тем не менее, я уже некоторое время пользуюсь Spring и дам вам совет.
Функция контроллера заключается в проверке входных данных и перенаправлении на представления при необходимости или для ответа на запросы клиентов. Если вы получили доменную логику (бизнес-логику, бизнес-правила и знание предметной области), логику, которая принимает критически важные для бизнеса решения, тогда она должна быть не на контроллере, а на службах.
Теперь я бы сказал, что у вас нет слоя в вашей архитектуре, я бы определенно добавил DAO
, который является шаблоном проектирования, определяющим способ отделения слоя персистентности вашего приложения. Это то, что вы бы поняли как репозиторий.
С учетом сказанного вам нужен только один HibernateConfiguration и выполнить соответствующие сопоставления в каждой модели или XML-файле, относящемся к этой модели. Я бы посоветовал использовать annotations
вместо файлов XML.
Если вы хотите узнать, как реализовать проект Spring, использующий Hibernate, вы можете увидеть, насколько это просто, следуя этому учебному пособию Baeldung . На этой странице есть лучшие руководства по использованию Spring.