Как я понимаю, IoC-контейнер полезен при создании объектов уровня приложений, таких как сервисы и фабрики. Но объекты уровня домена должны быть созданы вручную.
Руководство Spring говорит нам: «Обычно никто не настраивает детализированные доменные объекты в контейнере, потому что DAO и бизнес-логика обычно отвечают за создание / загрузку доменных объектов».
Хорошо. Но что, если мой «мелкозернистый» объект моего домена зависит от какого-либо объекта уровня приложения.
Например, у меня есть класс UserViewer (пользовательский пользователь, константы UserConstants).
Там пользователь является доменным объектом, который не может быть внедрен, но UserViewer также нуждается в UserConstants, который является высокоуровневым объектом, внедренным IoC-контейнером.
Я хочу добавить UserConstants из IoC-контейнера, но мне также нужен временный параметр времени исполнения User здесь.
Что не так с дизайном?
Заранее спасибо!
UPDATE
Кажется, я не был достаточно точен с моим вопросом. Что мне действительно нужно, так это пример того, как это сделать:
создать экземпляр класса UserViewer (пользователь-пользователь, служба UserService) , где пользователь передается в качестве параметра, а служба вводится из IoC.
Если я добавлю UserViewer viewer , то как мне передать user в него?
Если я создаю UserViewer Viewer вручную, то как мне передать service в него?