Spring动态服务提供程序注入基于属性文件中的配置

时间:2013-04-17 09:01:08

标签: spring spring-mvc

我有多个互斥的数据源,我想根据配置文件中定义的属性配置要注入/自动装入Controller的实现。

我正在想@Qualifier的一些东西,但我不是春天的专家,所以无法理解这些机制。

目的是避免产生错综复杂的if / else。

有什么想法吗?

1 个答案:

答案 0 :(得分:1)

您可以使用context:property-placeholder@Qualifier来完成这项工作。

它将如下所示:

<强> app.properties

some.implementation=com.example.MyServiceImpl

弹簧上下文文件

<context:property-placeholder
        location="classpath:/app.properties"/>

<bean id="myService" class="${some.implementation}" />

<强>控制器

@Autowired
@Qualifier("myService")
private MyService myService;

作为相反的解决方案:您可以保存属性文件bean ID,并在@Qualifier

中使用它
@Qualifier("${some.implementation.bean.id}")

但是如果您使用的是Spring 3.1+,那么您可能需要查看Profiles机制。