Рекомендуемая альтернатива злоупотреблению UserDetailServiceImpl для поиска в базе данных, не относящегося к пользователю? - PullRequest
1 голос
/ 24 августа 2010

В проекте , с которым я работаю, есть класс UserDetailServiceImpl , который выполняет все пользовательские операции поиска в базе данных.

Проблема в том, что у меня появилась плохая привычка выполнять поиск баз данных, не связанных с пользователем, и использовать класс UserDetailServiceImpl в качестве службы поиска по умолчанию, чтобы избежать выполнения поиска баз данных непосредственно в методах действия контроллера. Преимущество этого заключается в том, что мне не нужно создавать отдельный сервис поиска для каждой из моих моделей - что выглядит довольно глупо и избыточно. Но есть ли более стандартный подход к поиску в базе данных, который я должен рассмотреть, чтобы избежать гнева богов Весны?

1 Ответ

1 голос
/ 24 августа 2010

Мне не нравится использовать сервисы только для того, чтобы обернуть поиски в базе данных, в итоге вы получаете всю бизнес-логику в своем контроллере. Я бы организовал свои сервисы так, чтобы по одному типу пользователей. Так что, если бы у меня были клиенты и люди, занимающиеся вводом данных, и администраторы, я бы создал службу customerService, dataEntryService и adminService. Каждый сервис будет раскрывать методы, которые нужны клиенту. В контроллере не должно быть никакой бизнес-логики, она строго связана с получением входных данных из URL-адреса, запроса и сеанса, вызовом метода для некоторой службы (передачей этих входных данных), затем принятием результата вызова службы и помещением этого страница может отображать его.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...