わかった。私は正式に Spring コアに不満を感じています。まず、例を挙げてみましょう。Main、Person、および Address の 3 つのクラスがあります。Main は、main メソッド (いわばドライバー) を含むクラスです。すべての人がアドレスを持っているか、機能するためにアドレスが必要であると仮定しましょう。それは依存関係です。Spring を使用して、コンストラクターまたはセッターを介してこれらの Bean を「ワイヤリング」できることを理解しています。コンストラクターでそれを行ったとしましょう。
<bean id="address" class="vail.Address" />
<bean id="person" class="vail.Person">
<constructor-arg ref="address" />
</bean>
OK、ここで迷ってしまいます。私の調査 (主にチュートリアルによる) では、この時点から 2 つのオプションしか見たことがありません。ただし、3 番目を追加します。
- xml 内のアドレス定義に追加して、本質的にアドレスをハード コードします。問題 = すべての人が 123 nowhere dr に住んでいるわけではありません。
- アドレスクラスにハードコードします。問題 = 誰もが 123 nowhere dr に住んでいるわけではありません。
- (これは私の考えです) Address クラスに「street」パラメーターのセッターを追加します。Person クラスに「setStreet」メソッドを追加します。Person のインスタンス化後、Spring は私の (空の) 依存関係を注入しました。次に、通りの名前を渡して「setStreet」を呼び出します。次に、「setStreet」は、住所クラスの「street」パラメーターのセッターを呼び出します。これで、Main が知らないうちに、ようやく依存関係ができました。
これが正しい方法はありますか。Main と Address をデカップリングするのは大変な作業のようです。この問題で何か助けていただければ幸いです。