有一些服务:
@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, 它看起来很奇怪。
也许有人知道更好的方法?我将不胜感激。 提前谢谢。