我對如何與上述方案去春混亂(依賴注入上下文)春天依賴注入方案
class Login {
String username;
String password;
UserAuthService userAuth;
/*
assume getter and setter
methods for above private
properties here
*/
}
UserAuthService是有一個布爾方法驗證一個接口(字符串username,字符串密碼);
它由BasicAuthService,LDAPAuthService,MockBasicAuthService,MockLDAPAuthService實現; 另外假設BasicAuthServie具有屬性serverAddress,作爲具有認證服務器IP地址的字符串, 與LDAPAuthService相同。
語境下我的問題是依賴注入和Spring,
我瞭解,基於beanconfig文件春天(的IOC)將注入的具體實施 UserAuthService之一。
1。在beanconfig文件中,我們只能配置一個ref say() 場景:假設在UI用戶有一個下拉菜單來選擇BasicAuth/LDAPAuth。用戶選擇了LDAPAuth,如何在春季處理這種情況? ,因爲我們在beanconfig文件中有硬連線ref =「beanIdBasicAuthService」)。有沒有辦法動態地改變參考?
2。稍微複雜一些(假設IT管理員等等),UI現在提供選項來選擇認證服務器的地址(這是基本/ LDAP認證服務類中的一個屬性) 再次在beanconfig文件中,我們已經硬連接了這些屬性。如何在春季改變它的動態? (除了明確獲取注入bean和調用setterMethod)
這些場景對我來說有點混亂。有人可以解釋這個嗎?