使用@Qualified服务实现的环境配置文件?

时间:2014-06-03 17:57:04

标签: java spring spring-mvc

我有一个名为MyService的接口和几个我已添加@Qualifier的实现,例如A,B等。我正在尝试设置环境配置文件,以便我可以选择哪一个有一个简单的属性文件。现在我必须做这样的事情:

@Value("${my.service.impl}")
private String myServiceImpl;

@Bean
public MyService myService() {
  if (myServiceImpl.equals("A")) {
    return new MyServiceA();
  }
  else if (myServiceImpl.equals("B")) {
    return new MyServiceB();
  }
  // ...
}

但理想情况下,我可以做这样的事情:

@Autowired
@Qualifier("${my.service.impl}")
public MyService myService;

但是我发现@Qualifier不会解析表达式。它不支持表达式吗?更重要的是,是否有一种比if / else更清晰的方式告诉Spring要加载哪一个?

0 个答案:

没有答案