我正在使用Spring 4.1.x和Play 2.3.x,我试图从Play的application.conf
文件中注入一个属性值。
我可以通过以下方式访问属性:
@PropertySource("classpath:application.conf")
@Bean
public static PropertySourcesPlaceholderConfigurer propertySourcesPlaceholderConfigurer() {
return new PropertySourcesPlaceholderConfigurer();
}
我的application.conf
:
photo.url="https://our-photo-storage.net"
请注意引号。如果我删除它们,Play将抛出com.typesafe.config.ConfigException$Parse
。
我正在注入这样的属性值:
@Autowired
public PhotoToUrlMapper(@Value("${photo.url}") url) {
// trim quotes :-/
}
Spring会使用引号注入值。我显然可以修剪它们,但我希望能够在没有引号的情况下注入网址。
注意:
.properties
文件,但我想避免这种情况(更多配置)Play.current.configuration.getString("photo.url")
,但我实际上喜欢编写单元测试... 对此有合理的解决方法吗?
答案 0 :(得分:0)
我想唯一的方法是使用属性文件,我不认为配置太多,因为它为您提供了更好的代码可读性。引用了包含属性文件所需代码的示例
<bean id="placeholderProperties"
class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="locations">
<list>
<value>classpath:/url.properties</value>
</list>
</property>
<property name="ignoreUnresolvablePlaceholders" value="true" />
<property name="order" value="1" />
</bean>