Я понимаю, как, но не могу формально определять определения.Spring DI? Тип интерфейса?
Как известно, DI может быть выполнен через конструктор или сеттер или интерфейс. Я запутался в новейшей версии DI, используемой весной?
ОБНОВЛЕНИЕ: Я дал плохой пример здесь, что привело к неправильному пониманию.
Чтобы исправить это:
Скажем, у нас сеттер и в инкубаторе мы вводим интерфейс, реализованный некоторого класса. Это считается DI через сеттер или интерфейс?
http://martinfowler.com/articles/injection.html#UsingAServiceLocator эта статья делится на DI:..
«Есть три основных стиля инъекции зависимостей имен я использую для них Constructor Injection, сеттер инъекций, и Инъекция интерфейса Если вы читаете об этом в текущих дискуссиях об инверсии управления, вы услышите, что они называются IoC (вставка интерфейса), IOC типа 2 (инъекция установщика) и IOS типа 3 (инъекция конструктора). Я считаю, что числовые имена трудно вспомнить, поэтому я использовал имена, которые у меня есть ».
Else Service Locator шаблон, используемый для IoC, действительно ли это делает возможным @Autowired? - то есть не все классы явно должны быть объявлены в xml для DI, так как мы можем объявить их как @Repository или @Controller или снова, если я правильно помню.
Благодаря,
пожалуйста, сравните с другими методами DI, так как теперь я еще больше смущен. Я получаю значение, но давайте оставим @Autowired на мгновение.(забудьте о контексте: компонент-сканирование - скажем, у нас его нет). Покажите мне, пожалуйста, разницу между DI с помощью сеттера и интерфейса - вы можете установить интерфейс в сеттер - тогда что это будет вызвано через интерфейс или через сеттер? Тогда почему это формально делится на DI через Setter OR Interface. – Aubergine
«разница между DI через сеттер и интерфейс» - яблоки и апельсины, они не имеют ничего общего друг с другом. См. Править выше. – pap
Я точно понимаю, что вы делаете и как это работает (я сам реализовал, и это работает блестяще). И это то, что я думал, что его нельзя сравнивать. Но почему автор статьи помещает инъекцию интерфейса вдоль линии с помощью инъекций установщика и конструктора? – Aubergine