Где поставить бизнес-логику в Spring MVC framework?
Я не знаю, где поставить бизнес-логику весной mvc, потому что я новичок в этом. У меня есть подсказка о том, что делать, но из-за отсутствия знаний весной mvc, я не знаю, с чего начать. Я также хотел бы спросить, знает ли кто-нибудь, где я могу получить хороший учебник по этому или полный образец веб-приложения spring mvc, в котором есть бизнес-логика? В любом случае, бизнес-логика, о которой я говорил, - это обработка базы данных :)
3 ответов
@Controller
классы служат C от MVC. Обратите внимание, что реальный контроллер весной MVC является DispatchServlet
это будет использовать конкретный @Controller
класс для обработки запроса URL-адреса.
@Service
классы должны служить для вашего уровня обслуживания. здесь вы должны поставить бизнес-логики.
@Repository
классы должны служить для вашего уровня доступа к данным. Здесь следует поставить CRUD logic: insert, update, delete, select.
@Service
, @Repository
и ваши классы сущностей будет M от MVC. JSP и другие технологии просмотра(например, JSP, Thymeleaf и т. д.) будет соответствовать V от MVC.
@Controller
классы должны иметь доступ только к @Service
классов через интерфейс. Похожие,@Service
классы должны иметь доступ к другим @Service
классы и для определенного набора @Repository
классов через интерфейс.
многие люди рекомендуют добавить бизнес-логику на уровень сервиса. Я лично узнаю, что это не отличная идея, особенно когда вы начинаете тестирование: вам может потребоваться иметь дело либо с настойчивостью и бизнес-логикой одновременно, либо издеваться над всем вокруг, и тогда все может стать очень грязным.
Я рекомендую прочитать эту статью, прежде чем делать какие-либо выводы: самый большой недостаток весенних веб-приложений
возобновлении идея заключалась бы в том, чтобы переместить бизнес-логику на уровень модели и упростить методы сервисов.
Как правило, ваша бизнес-логика идет на уровне сервиса. Хотя вы можете поместить основные правила проверки в свои pojos с аннотациями JSR.
для приложения Spring MVC у вас есть контроллеры, которые обрабатывают http-запросы, и уровень домена, который pojos, представляющие ваши бизнес-модели. У вас часто есть слой персистентности или DAO. У вас также может быть уровень обслуживания, чтобы помочь с нетривиальной логикой.
ваш комментарий об обработке базы данных не делает чувство. Бизнес-правила ортогональны хранению данных. Обработка базы данных должна выполняться на уровне персистентности.