我对如何与上述方案去春混乱(依赖注入上下文)春天依赖注入方案
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)
这些场景对我来说有点混乱。有人可以解释这个吗?