Я имею в своем applicationContext.xml
<context:property-placeholder location="classpath*:*.properties" />
<bean id="clientPreferencesManager" class="pl.bildpresse.bildchat2.business.ClientPreferencesManager" >
<property name="clientApiUrl" value="${clientapi.url}" />
</bean>
Действительно ли возможно сделать то же по автопроводу? Что-то как:
@Autowired
@Qualifier("${clientapi.url}")
public void setClientApiUrl(String clientApiUrl) {
this.clientApiUrl = clientApiUrl;
}
Вы можете использовать @Value
:
@Value("${clientapi.url}")
public void setClientApiUrl(String clientApiUrl) {
this.clientApiUrl = clientApiUrl;
}
Для Spring 3.0 правильный путь показан на рисунке - с помощью @Value (" $ {expression} ")
Для Spring до 3.0 вы можете попробовать:
@Autowired
private StringValueResolver resolver;
Здесь не было проблем с инициализацией контекста, но я не уверен, что это сработает. Используя преобразователь, вы можете разрешить свойства.
Мое решение - использовать
<context:property-override location="classpath:clientapi.properties" />
, а затем в файле clientapi.properties
clientPreferencesManager.clientApiUrl=http://localhost:8084/ClientAPI/resources/
Этот тоже хорош
Хорошо. Только что понял. Вам нужно добавить @Autowired Примерно так:
@Autowired
@Value("${clientapi.url}")
private StringValueResolver resolver;
Я использую spring 3.0.0.RELEASE
Ура