Spring条件bean查找

时间:2014-11-20 21:56:31

标签: java spring

有一些服务:

@Service("first")
@Scope(BeanDefinition.SCOPE_PROTOTYPE)
class FirstService extends AbstractService{
 // ...
}

@Service("second")
@Scope(BeanDefinition.SCOPE_PROTOTYPE)
class SecondService extedns AbstractService{
 // ...
}

@Component
class Factory {

  @Autowired
  ApplicationContext context;    

  public AbstractService getService(boolean businessCondition){
    if (condition){
      return context.getBean("first");
    }else{
      return context.getBean("second");
    }   

}

注意:businessCondition依赖于业务逻辑,我计算它。

我不喜欢这种方法,因为我在我的Service bean中注入了ApplicationContext, 它看起来很奇怪。

也许有人知道更好的方法?我将不胜感激。 提前谢谢。

0 个答案:

没有答案