Java 如何在SpringXML中为一个接口配置多个实现类?
我正在使用Spring2.0.6。在我的应用程序中,我有一个接口,有多个实现类 首先,我需要知道,在Spring中是否有一个接口可以有一个实现类的限制 如果没有,我如何在spring上下文xml中配置这些多个实现和接口。Java 如何在SpringXML中为一个接口配置多个实现类?,java,spring,polymorphism,Java,Spring,Polymorphism,我正在使用Spring2.0.6。在我的应用程序中,我有一个接口,有多个实现类 首先,我需要知道,在Spring中是否有一个接口可以有一个实现类的限制 如果没有,我如何在spring上下文xml中配置这些多个实现和接口。 以及如何使Spring在运行时使用名称或某些属性使用单个实现类?首先,Spring中没有关于实现的限制,您可以自由地实现任意多的类 下面的exmaple可以帮助您了解多个实现,以及如何在运行时选择一个实现: 假设您有两个DAO类,一个用于Oracle,另一个用于MySQL,两个
以及如何使Spring在运行时使用名称或某些属性使用单个实现类?首先,Spring中没有关于实现的限制,您可以自由地实现任意多的类 下面的exmaple可以帮助您了解多个实现,以及如何在运行时选择一个实现: 假设您有两个DAO类,一个用于Oracle,另一个用于MySQL,两个类都实现了DAO接口。在Spring配置文件中将实现定义为bean。在business类中,您有一个DAO类型的属性,而在spring配置文件中,您选择实际的类型,是使用Oracle还是MySQL注入,还是使用spring注释
@Autowired
这将减少耦合,并且很容易从Oracle迁移到MySQL
@Service
public class Business {
@Autowired
private Dao daoImpl;
//Business methods that invoks Dao methods
}
在Spring配置文件(XML文件)中,使用以下内容:
<bean id="daoImpl" class="app.com.MySQLDaoImpl OR app.com.OracleDaoImpl"/>
只需更改bean的类属性,就可以更改整个实现,而不会更改业务类
这是原件。2.0.6?这是打字错误吗?该版本于2007年6月左右发布。帮自己一个忙,升级到受支持的版本,这样你就可以有效地使用文档。这是一个旧的应用程序,我无法控制更改技术堆栈和版本。