私はその方法を理解していますが、正式にその定義を形作ることはできません。スプリングDI?インターフェイスタイプ?
知られているように、DIはコンストラクタまたはセッタまたはインターフェイスを介して実行できます。 私は最新のone-interfaceベースのDIについて混乱しています。これはSpringで使用されていますか?
更新:私は間違った理解につながったここで悪いexamleを与えた。
それを修正するには、次の
は、我々が持っているセッター、セッターに我々はいくつかのクラスによって実装されるインタフェースを注入言います。それはセッターやインターフェイス経由でDIと見なされますか?
http://martinfowler.com/articles/injection.html#UsingAServiceLocator この記事は上のDIを分割:。。
「依存性注入には主に3つのスタイルがありますが、私は彼らのために使っている名前は、コンストラクタ・インジェクション、セッター・インジェクション、およびインターフェイス注入されている場合あなたはType IoC(インターフェイスインジェクション)、タイプ2 IoC(セッターインジェクション)、タイプ3 IoC(コンストラクタインジェクション)と呼ばれるInversion of Controlに関するこのディスカッションでこのことについて読んでいます。覚えていないので、私はここにある名前を使ったのです」
これ以外のIoCに使用されるサービスロケータパターンは、実際に@Autowiredを可能にするものですか?つまり、私が正しくリコールすれば、それらを@Repositoryまたは@Controllerまたは同様に宣言することができるので、すべてのクラスをxmlで明示的に宣言する必要はありません。インターフェースをオートワイヤリング
おかげで、
他のDIメソッドと比較してみてください。今はもっと混乱しています。私は意味を持っていますが、@Autowiredをしばらくお待ちください。(コンテキストを忘れる:コンポーネントスキャン - 私たちはそれを持っていないと言う)私は、セッターとインターフェイスを介してDIの違いを見せてください - あなたはsetterでインターフェイスを設定することができます - そして、それはインターフェイスまたはセッター経由で呼び出されるでしょうか?そして、なぜそれが正式にDI上でSetter OR Interfaceを介して分割されるのですか? – Aubergine
"セッターとインターフェースを介したDIの違い" - リンゴとオレンジは、お互いに関係ありません。上記の編集を参照してください。 – pap
私はあなたが何をしているのか、それがどのように機能しているのかを正確に理解しています(私は自分で実装しましたが、鮮やかに動作します)。しかし、なぜ記事の作者は、セッターとコンストラクターの注入とラインに沿ってインターフェイス注入を配置するのですか? – Aubergine