私は春(依存性注入コンテキスト)に上記のシナリオに取り掛かる方法についての混乱を持っています春の依存性注入のシナリオ
class Login {
String username;
String password;
UserAuthService userAuth;
/*
assume getter and setter
methods for above private
properties here
*/
}
UserAuthServiceは、ブール法の検証(文字列名、文字列のパスワードを持っているインターフェースであります);
BasicAuthService、LDAPAuthService、MockBasicAuthService、MockLDAPAuthServiceで実装されています。 また、BasicAuthServieには、LDAPAuthServiceと同じ という認証サーバーのIPアドレスを持つ文字列として、serverAddressプロパティがあるとします。私の質問の
コンテキスト依存性の注入と春、
である私はbeanconfigファイルの春(のIOC)に基づいていることを理解 UserAuthServiceの具体的な実装のいずれかを注入します。
1。 beanconfigファイルでは、refを1つしか設定できません。 シナリオ:UIユーザーに、BasicAuth/LDAPAuthを選択するドロップダウンがあるとします。ユーザーはLDAPAuthを選択しました。春にこのケースに対処する方法は? beanconfigファイルのref = "beanIdBasicAuthService"がハードワイヤードされているためです)。動力学的にリファレンスを変更する方法はありますか?
2。少し複雑(IT管理者など)、UIは認証サーバー(Basic/LDAP Authサービスクラスのプロパティ)のアドレスを選択するオプションを提供しています もう一度beanconfigファイルでプロパティをハードワイヤードにしていました。ダイナミックに春にそれを変える方法は? (注入されたBeanを明示的に取得してsetterMethodを呼び出す以外)
これらのシナリオは私にとってはちょっと混乱します。誰かがこれを説明できますか?