【问题标题】:Creating bean using static method from another class使用来自另一个类的静态方法创建 bean
【发布时间】:2013-12-10 09:22:44
【问题描述】:

我有一个工厂类,它有各种静态方法来返回某些类的实例。 spring 如何在不同类中使用静态工厂方法创建 bean?

类似:

public class InstanceFactory
{    
  public static JellyBean getJellyBeanInstance()
  {
    return new JellyBean(); 
  }
}

我需要一个果冻豆。

【问题讨论】:

  • 添加代码示例
  • 更新了问题。
  • 这个问题还是没有答案?

标签: spring spring-ioc


【解决方案1】:

只需将您的 getJellyBeanInstance() 方法更改为非静态, 那么你需要:

<bean id="instanceFactory" class="InstanceFactory"/>

<bean id="yourBeanId" factory-bean="instanceFactory" factory-method="getJellyBeanInstance"/>

【讨论】:

  • class="YourFactoryClass" 这不应该是需要创建其实例的类的名称吗?
  • @varun 你是对的,如果静态工厂方法在类本身上就可以工作,我会更新答案。
  • 如果静态工厂方法不在类本身,它在其他类中怎么办
  • 我真的不希望我的工厂本身就是一个豆子。
【解决方案2】:

这应该会有所帮助: Spring Bean Instantiation with a static factory method

例如工厂方法,文档的下一部分应该会有所帮助。

【讨论】:

  • 我已经知道如果我创建工厂类的 bean 可以做到这一点,但我不想创建工厂类的任何实例。假设我的工厂类是抽象的。
猜你喜欢
  • 2012-04-10
  • 2022-09-23
  • 2022-01-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-02-13
相关资源
最近更新 更多