Рекомендации по настройке / привязке Guice

#java #dependency-injection #guice

#java #внедрение зависимостей #guice

Вопрос:

Как настроить Guice, если у вас многоуровневая архитектура (DAO, сервисы, контроллеры)?

Он должен быть настроен на верхнем уровне (контроллеры)? Или мы должны настраивать на каждом уровне? Если да, то когда, как объединить их вместе?

Как насчет тестов? Как это должно быть? Спасибо.

Комментарии:

1. Я лично настраиваю по функциям, потому что более эффективно иметь целую функцию в одном месте. пакеты являются явными, модули легче настраивать. Для этого нужно перестать думать о «слоях». Например, у вас есть пакет book, вы помещаете туда свою сущность Book , а также BookService , BookDao , BookController . И чтобы связать все вместе, вы также помещаете свою BookModule в этот пакет. Итак, чтобы ответить на ваш вопрос, я бы реорганизовал макет на основе функций, а затем поместил модуль в каждый пакет.

Ответ №1:

Согласно общей практике, DAO настолько легкий, насколько это возможно, и существует для обеспечения подключения к БД.

Уровень обслуживания предназначен для обеспечения логики работы с данными, отправляемыми в DAO и из клиента и обратно.

Очень часто они будут объединены в один и тот же модуль, а иногда и в один и тот же код, но вы все равно будете видеть их как отдельные логические объекты.

Таким образом, вы должны привязать необходимые службы к соответствующему модулю Guice и внедрить в контроллеры, и лучше предоставить DAO для уровня реализации сервиса посредством внедрения.

Согласно подходу к тестированию, каждый DAO следует тестировать отдельно на стороне сервера на предмет его функциональных возможностей, если ваш сервис не выполняет никаких функций, кроме логики, для работы с данными, отправляемыми в DAO и клиенту и из DAO.