Spring选择所需的bean实现

时间:2013-12-18 08:50:29

标签: java spring

我在Spring Web应用程序中有一个原型范围的bean(我正在使用Spring注释),我们称之为MainBean,它通过依赖注入使用IOtherBean的一个实现。

我遇到的问题是,我们不知道在运行时我们需要使用哪种实现。当我们调用MainBean的一个方法(比如doStuff(String param))时,它应该根据param值确定要选择的实现。

目前我只是通过将ApplicationContext自动装配到MainBean并根据param值调用appContext.getBean()来实现它,并且工作正常。

我想知道有更干净的方法吗?如果那些不是Spring托管bean,我会使用Factory模式来实例化正确的bean。春天有类似的东西吗?根据我的阅读,我无法看到如何在运行时使用Spring工厂bean来做我想做的事。

任何建议表示赞赏。

1 个答案:

答案 0 :(得分:2)

实际上,使用ApplicationContext.getBean() 你已经使用工厂模式,只有Spring的工具模式。 getBean()方法在BeanFactory接口中声明ApplicationContext扩展。所以你现在正在做的事情对我来说没问题。