【发布时间】:2011-12-10 09:30:07
【问题描述】:
有谁知道我是否应该能够将属性占位符用作限定符中的表达式?我似乎无法正常工作。
我正在使用 spring 3.0.4。
@Controller
public class MyController {
@Autowired
@Qualifier("${service.class}")
Service service;
}
@Service
@Qualifier("ServiceA")
ServiceA implements Service {
public void print() {
System.out.println("printing ServiceA.print()");
}
}
@Service
@Qualifier("ServiceB")
ServiceB implements Service {
public void print() {
System.out.println("printing ServiceB.print()");
}
}
XML:
<bean id="propertyConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="location" value="file:/etc/config.properties"/>
</bean>
config.properties:
config.properties
service.class=serviceB
【问题讨论】:
-
当您可以选择如何在 XML 中连接 bean 时,在属性文件和
@Qualifier中执行此操作有什么意义? -
你看过spring-3 profile beans吗?看起来这可能就是您正在寻找的东西。看起来您应该能够按照您的要求进行操作,因为 spring-3 具有支持解析属性的 @Value 注释。但我只是不确定。
-
@matt 只是想尽量减少 XML 的使用。和属性文件,因为不同的部署会使用不同的实现。
标签: java spring dependency-injection