使用Spring框架的抽象工厂

Sta*_*lin 1 java configuration spring dependency-injection

我有一些抽象工厂

public interface AbstractViewersFactory {
    IAbstractShapeViewer createRectangle(BaseOperationsListener<RectangleDTO> p);
    IAbstractShapeViewer createOval(BaseOperationsListener<OvalDTO> p);
    IAbstractShapeViewer createTriangle(BaseOperationsListener<TriangleDTO> p);
}
Run Code Online (Sandbox Code Playgroud)

并实现了Draw2DViewersFactory.现在,我想创建一个类,负责按模型创建演示者/查看器并由Spring配置它.所以,我需要在.xml配置中描述它应该调用的方法.它可以是这样的(伪配置)

<bean creator>
<constructor-args>
<list>
    <bean describe-item> <constructor-args>model=Rectangle.class, method-for-viewer-create="createRectangle"</args>
    <bean describe-item> <constructor-args>model=Oval.class, method-for-viewer-create="createOval"</args>
<list>
</constructor-args>
</bean>
Run Code Online (Sandbox Code Playgroud)

我怎么能这样做?

谢谢.

chz*_*gla 6

即使你的问题很不清楚,我想我得到了你想知道的东西.您可以将spring bean定义为工厂实例,然后像这样设置此bean的工厂方法:

<bean id="myFactoryBean"
  class="AbstractViewersFactory">

  <bean id="exampleBean"
  factory-bean="myFactoryBean"
  factory-method="createRectangle"/>
Run Code Online (Sandbox Code Playgroud)

希望这可以帮助.Google有关详细信息:p

问候