Я хотел бы получить ваши экспертные объяснения по поводу архитектурного вопроса.Представьте себе веб-приложение Spring MVC с API проверки (JSR 303).Поэтому для запроса у меня есть контроллер, который обрабатывает запрос, а затем передает его на уровень обслуживания, который переходит на уровень DAO.
Вот мой вопрос.На каком уровне должна проходить валидация и как?
Мое мнение состоит в том, что контроллер должен обрабатывать базовую валидацию (являются ли обязательные поля пустыми? Длина поля в порядке? И т. Д.).Тогда сервисный уровень может делать некоторые хитрые вещи, которые включают другие объекты.DAO вообще не проверяет.НО, если я захочу реализовать какое-то модульное тестирование (т. Е. Уровни тестирования ниже службы, а не контроллеры), я получу неожиданное поведение, потому что некоторые проверки должны были быть выполнены на уровне контроллера.Поскольку мы не используем его для модульного тестирования, возникает проблема.
Как лучше всего с этим справиться?Я знаю, что нет универсального ответа, но ваш личный опыт очень приветствуется.
Большое спасибо.С уважением.