Я пытаюсь внедрить репозиторий (MongoRepository) в свои объекты домена, и я выполнял инструкции от этого link, но, похоже, не в состоянии его правильно исправить. Кто-нибудь делал это раньше? Я использую Spring Data Mongo.Ввод MongoRepository в объекты домена
ответ
Я думаю, что это ненужные накладные расходы (используйте АОП). Вы можете решить это с помощью простой Java. Возьмите класс репозитория, способный создавать объекты и выполнять автоматическую инъекцию внутри них.
Для образца:
public class MyBusinessRepository {
public MyBusinessClass create() {
return new MyBusinessClass(this);
}
...
}
Considerating "MyBusinessClass" с конструктором, который получит хранилище в качестве аргумента.
В любом случае, если вы действительно хотите сделать это с AOP, покажите нам сообщения об ошибках.
Вы бы никогда не делали этого с помощью подхода DDD. Как указано в комментариях выше, объекты домена никогда не будут ссылаться на репозиторий или быть зависимыми от него. Кроме того, репозитории не используются для создания новых экземпляров, заводы имеют такую ответственность. И я бы предложил использовать какой-то тип инструмента «Инверсия управления» (IoC) для управления зависимостями, а не ссылками с жестким кодированием, как у вас выше. – SonOfPirate
Не вводите репозитории в объекты домена. Вместо этого отправьте объекты домена в репозиторий. – MikeSW
Не понимаю, Майк. Это ваше решение? Я пытаюсь применить шаблон Driven Design, и я пытаюсь использовать репозитории Spring Data (JPA или Mongo). – Reza
DDD - это не образец, это мышление. В любом случае, объекты домена не должны знать о репозитории, поскольку это не их ответственность. Приложение будет использовать репозиторий для сохранения/загрузки объектов домена. Вы хотите решение, но для неправильной проблемы. – MikeSW