Где поставить бизнес-логику в 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. У вас также может быть уровень обслуживания, чтобы помочь с нетривиальной логикой.

ваш комментарий об обработке базы данных не делает чувство. Бизнес-правила ортогональны хранению данных. Обработка базы данных должна выполняться на уровне персистентности.