Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何在SpringXML中为一个接口配置多个实现类?_Java_Spring_Polymorphism - Fatal编程技术网

Java 如何在SpringXML中为一个接口配置多个实现类?

Java 如何在SpringXML中为一个接口配置多个实现类?,java,spring,polymorphism,Java,Spring,Polymorphism,我正在使用Spring2.0.6。在我的应用程序中,我有一个接口,有多个实现类 首先,我需要知道,在Spring中是否有一个接口可以有一个实现类的限制 如果没有,我如何在spring上下文xml中配置这些多个实现和接口。 以及如何使Spring在运行时使用名称或某些属性使用单个实现类?首先,Spring中没有关于实现的限制,您可以自由地实现任意多的类 下面的exmaple可以帮助您了解多个实现,以及如何在运行时选择一个实现: 假设您有两个DAO类,一个用于Oracle,另一个用于MySQL,两个

我正在使用Spring2.0.6。在我的应用程序中,我有一个接口,有多个实现类

首先,我需要知道,在Spring中是否有一个接口可以有一个实现类的限制

如果没有,我如何在spring上下文xml中配置这些多个实现和接口。


以及如何使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月左右发布。帮自己一个忙,升级到受支持的版本,这样你就可以有效地使用文档。这是一个旧的应用程序,我无法控制更改技术堆栈和版本。