Spring实例化使用非静态工厂方法

时间:2012-10-03 14:51:55

标签: spring configuration

我有一种情况,我想在Spring配置中创建bean2:

beans.xml中:

<bean id="bean1" class="...">
    <property name="..." ref="..." />
</bean>

bean2 = bean1.foo()

非常感谢任何帮助,

谢谢, Behzad

2 个答案:

答案 0 :(得分:2)

您可以使用实例工厂方法。请参阅Spring文档中的corresponding chapter

<bean id="bean2" factory-bean="bean1" factory-method="foo"/>

答案 1 :(得分:0)

如果您使用的是注释,可以使用:

@Configuration
public class AppConfig {

    @Bean
    @Lazy
    public Bean1 getBean1(){
        return Bean1.getInstance();
    }

    @Bean
    public Bean2 getBean2() {
        return this.getBean1().newBean2(); //in your example is this.getBean1().foo();
    }

}