如果我们想在运行时决定实例化哪个子对象,那么如何在spring中配置配置文件?

如果我们想在运行时决定实例化哪个子对象,那么如何在spring中配置配置文件?,spring,Spring,现在我们有五个子类,它扩展了ParentClass1。现在到了春天,我们将在什么时候编写MyClass1,我们将如何确定 五个子实例中的哪一个需要在这里注入(因为它取决于某个运行时参数,取决于哪个 我们必须创建子实例,比如i=1实例化child1,i=2实例化child2)。如果有,请引导我 如何为上述场景配置配置文件,即spring-config.xml 编辑:- 我的问题是如何在factory方法中传递参数。假设此参数来自用户界面上选择的某个值,并且在设置配置文件时不知道。下面是我的工厂、客

现在我们有五个子类,它扩展了ParentClass1。现在到了春天,我们将在什么时候编写MyClass1,我们将如何确定 五个子实例中的哪一个需要在这里注入(因为它取决于某个运行时参数,取决于哪个 我们必须创建子实例,比如i=1实例化child1,i=2实例化child2)。如果有,请引导我 如何为上述场景配置配置文件,即spring-config.xml

编辑:-

我的问题是如何在factory方法中传递参数。假设此参数来自用户界面上选择的某个值,并且在设置配置文件时不知道。下面是我的工厂、客户机和配置文件

public Class MyClass1{

private ParentClass1 parentInstance;

private int i=1;

public MyClass1(ParentClass1  instance)
{
this.parentInstance=instance;

}

public int getI() {
return i;
}

public void setI(int i) {
this.i = i;
}

}
}

下面是配置文件中的代码片段

Public class MYFactory
{
Public static getObject(int i)
{
if(i==1)
{
return childclass1;// will get from config file
}


if(i==2)
{
return childclass2;// will get from config file
}

//continued

}
考虑到上述示例,现在我将如何将i的值从主方法传递到工厂方法?

您应该使用

工厂有不同的风味

工作原理:

您可以像其他bean一样基于其超类或接口来使用bean。但是工厂决定将创建什么样的子类。因此,当Spring需要将一个bean注入到另一个bean中时,它将向工厂咨询具体bean(或者根据范围(单例)使用已经创建的bean)。因此,工厂可以通过某种逻辑来决定必须创建哪个具体的子类


我的手机无法在stackoverflow gui上写评论,因此我需要扩展答案来回答评论:对不起,我不能给出一个例子,因为我现在(从5小时起)在接下来的几周休假。我没有电脑,我的手机甚至无法添加评论。所以你需要问一个关于细节的新问题


我不理解约克·拉塞尔的评论。但我的答案中的三维差异是与最近文献的链接,其中包含da的一个例子 每个顺便说一句,我在接下来的几天内都不会上网,如果参考资料不完整,你应该问一个新问题

-

您应该使用

工厂有不同的风味

工作原理:

您可以像其他bean一样基于其超类或接口来使用bean。但是工厂决定将创建什么样的子类。因此,当Spring需要将一个bean注入到另一个bean中时,它将向工厂咨询具体bean(或者根据范围(单例)使用已经创建的bean)。因此,工厂可以通过某种逻辑来决定必须创建哪个具体的子类


我的手机无法在stackoverflow gui上写评论,因此我需要扩展答案来回答评论:对不起,我不能给出一个例子,因为我现在(从5小时起)在接下来的几周休假。我没有电脑,我的手机甚至无法添加评论。所以你需要问一个关于细节的新问题


我不理解约克·拉塞尔的评论。但我的答案中的三维差异是与最近文献的链接,其中包含da的一个例子 每个顺便说一句,我在接下来的几天内都不会上网,如果参考资料不完整,你应该问一个新问题


-

嗨,拉尔夫,你能详细说明一下spring factory在上述情况下将如何发挥作用吗。莫希特·古普塔:见我的扩展回答谢谢拉尔夫。我明白你的意思,我们必须使用一种方法,在那里我们应该使用工厂级和spring。如果你能在这里举一些例子,考虑到原来的帖子,我将不胜感激。对不起,打扰你了。但是我急需这个。提前谢谢。在需要的时候创建一个并获取所需的会不会太困难?我想不是。我在春天得到了工厂的静态和非静态风格。我的问题是我们如何在工厂方法中传递参数。假设此参数来自用户在用户界面上选择的某个值,并且在设置配置文件时不知道。嗨,拉尔夫,您能否详细说明一下spring factory将如何在上述场景中发挥作用。莫希特·古普塔:见我的扩展回答谢谢拉尔夫。我明白你的意思,我们必须使用一种方法,在那里我们应该使用工厂级和spring。如果你能在这里举一些例子,考虑到原来的帖子,我将不胜感激。对不起,打扰你了。但是我急需这个。提前谢谢。在需要的时候创建一个并获取所需的会不会太困难?我想不是。我在春天得到了工厂的静态和非静态风格。我的问题是我们如何在工厂方法中传递参数。假设此参数来自用户在用户界面上选择的某个值,并且在设置配置文件时不知道。
<bean  id="myfactory"  class="package.MyFactory"  factory-method="getObject">
</bean>
public static void main(String arrgs[])
{
ParentClass pc=(ParentClass)XMLBeanFactor.getbean("myfactory");// Please ignore the                 syntax just consider the logic
}